在有人问之前,我已经搜索了现有问题并找到了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/