jQuery IE9:无法获取属性'val'的值:object为null或undefined

时间:2012-01-09 14:58:04

标签: javascript jquery internet-explorer

我在IE9中收到此错误,指向下面代码段中的行return self.subQuantity.val();。什么可能导致这种情况?

我应该在FF中完美地添加它。

部分功能:

$(document).ready(function() {
    plan = (function() {
        var plan = {
            subQuantity: $('.downgrade .count'),
...

init: function(productCatalog) {
                this.prod = productCatalog;
                this.reset();
                self = this;

                this.fetchButton.bind('click', function(e) {
                    self.fetchScenarii();
                    return false;
                }).filter(function() {
                    return self.subQuantity.val();
                })
            }

HTML

<div class="downgrade">
...
<input type="count" name="count" />
...
</div>

3 个答案:

答案 0 :(得分:1)

           self = this;

是错误吗?您正在写入global self variable(此处引用回window) - 这在IE中是不可写的。添加var declaration

            var self = this;

它会起作用。

答案 1 :(得分:0)

它返回为未定义的值,所以你尝试使它像val或length一样会保持给你相同的错误对话框 我面临同样的问题 解决方案 在调用任何方法之前,您需要检查值是否未定义 我在这里如何解决它

         if (typeof $("#<%=hdnSupplierDialog.ClientID%>").val() === "undefined")
                return;

我只是阻止在未定义值的情况下调用代码 我希望它适合你:)

答案 2 :(得分:-2)

更改

return self.subQuantity.val();

return self.subQuantity.attr("value");