jQuery IE9:无法获取属性'的值;val':对象为null或未定义

jQuery IE9: Unable to get value of the property 'val': object is null or undefined

本文关键字:对象 null 未定义 val IE9 获取 属性 jQuery 的值      更新时间:2023-09-26

我在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>
           self = this;

是错误。您在这里写入全局self变量(对window的引用),它在IE中是不可写的。添加一个var声明

            var self = this;

它会起作用的。

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

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

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

更改

return self.subQuantity.val();

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