在有人问之前,我已经搜索了现有问题并找到了this question,但是答案是undefined被设置为null,在这里不是这种情况。

这是我的代码:

check_availability = function () {
    var value = $('#contact_type').val();
    if (value !== undefined) {
        // do some stuff
    }
}

简单吧?我有一个<select id="contact_type"></select>,其选项通过ajaxy填充。最初,选项列表为空,因此jQuery val()返回undefined
到现在为止还挺好。

除了if块中的代码始终执行。我在第三行的FireBug中设置了一个断点,我得到了:

谁能告诉我怎么回事?

附言这是Firefox 4.0

编辑:我知道有很多方法可以达到相同的结果,我更感兴趣的是为什么根据FireBug未定义值,但是!==未定义。

最佳答案

只需检查value的真实性即可。

if (value) {
    // sexy times
}

顺便说一句,当null不包含undefined时,jQuery返回<select>,而不是<option>http://jsfiddle.net/mattball/cQ83z/

10-01 01:27
查看更多