从select返回的JQuery测试值

从select返回的JQuery测试值,jquery,Jquery,它具有值为true和false的选项 我这里有一些jQuery: $("#myselect").change(function () { var accepted = $(this)[0].value; alert(accepted); if(accepted == false) { alert("Hi"); } }); 我不明白的是为什么Hi消

它具有值为true和false的选项

我这里有一些jQuery:

$("#myselect").change(function () {

            var accepted = $(this)[0].value;
            alert(accepted);

            if(accepted == false) {
                alert("Hi");
             }
        });
我不明白的是为什么Hi消息从未显示

if中的条件总是通过false

有人能帮我一下吗?我对jQuery还不太熟悉。

这是因为输入的value=是一个字符串:

if (accepted == 'false')
这是因为输入的值=是一个字符串:

if (accepted == 'false')

您的下拉列表的值似乎是'false',这是一个字符串,而false是一个布尔值


因此,将您的检查更改为ifaccepted==“false”。

您的下拉列表的值似乎是“false”,这是一个字符串,而false是一个布尔值


因此,将您的检查更改为ifaccepted==“false”。

select的值是字符串,而不是布尔值。非空字符串作为真值计算,因此它永远不会等于布尔值false。您应该将比较作为字符串进行

$("#myselect").change(function () {

     var accepted = $(this).val();
     alert(accepted);

     if (accepted == 'false') {
         alert("Hi");
     }
});

select的值是字符串,而不是布尔值。非空字符串作为真值计算,因此它永远不会等于布尔值false。您应该将比较作为字符串进行

$("#myselect").change(function () {

     var accepted = $(this).val();
     alert(accepted);

     if (accepted == 'false') {
         alert("Hi");
     }
});

@格雷莫-只是剪切/粘贴他的例子,重点是纠正测试,而不是其他。我会解决的。浏览器是否会从.value返回一个select DOM值,但该值不如.val准确?@JaredFarrish-我认为select DOM元素没有value属性。它将拥有一个selectedIndex属性和一个options集合,您可以使用它来访问该选项并获取其值。在浏览器中可能存在差异,因此我的问题是,但在FF 7.0.1、IE9和Chrome最新版本中@JaredFarrish-啊,它在HTML5中,应该在更新的浏览器中。它是第一个选定选项的值,因此如果它是一个多选选项,则会有所不同。@Gremo-只需剪切/粘贴他的示例,重点是更正测试,而不是其他。我会解决的。浏览器是否会从.value返回一个select DOM值,但该值不如.val准确?@JaredFarrish-我认为select DOM元素没有value属性。它将拥有一个selectedIndex属性和一个options集合,您可以使用它来访问该选项并获取其值。在浏览器中可能存在差异,因此我的问题是,但在FF 7.0.1、IE9和Chrome最新版本中@JaredFarrish-啊,它在HTML5中,应该在更新的浏览器中。它是第一个选定选项的值,因此如果它是multiselect,则会有所不同。