在我以前的版本的应用程序,这些代码工作得很好:遗漏的类型错误对象有没有方法“禁用”
form.find('input').disable();
有了新的环境(Rails的3.3和JQuery的新版本),这不工作了。
我得到的错误是:
遗漏的类型错误对象[对象的对象]还没有方法“禁用”。
为什么我得到这个错误,我该如何解决呢?
在我以前的版本的应用程序,这些代码工作得很好:遗漏的类型错误对象有没有方法“禁用”
form.find('input').disable();
有了新的环境(Rails的3.3和JQuery的新版本),这不工作了。
我得到的错误是:
遗漏的类型错误对象[对象的对象]还没有方法“禁用”。
为什么我得到这个错误,我该如何解决呢?
[].forEach.call(form.elements, function (el) { el.disabled = true })
或jQuery的也许......
$(document.forms['form_name'].elements).each(function() {
this.disabled = true;
});
不要使用disable()
但prop("disabled", true)
来代替。
据我所知,从未有jQuery中
是disable()
方法
第二个参数(即价值),或许应该只是是'true',因为DOM属性是布尔值而不是字符串。 (字符串形式是适当的*属性*,而不是* *财产,换句话说。)然而,字符串将工作,因为,当强制为布尔值,它是'真'。 – Pointy 2012-04-19 14:39:38
不@Xander你是不正确的。看看DOM规范:**属性**是布尔值,而不是字符串。在HTML标记中,将**属性**设置为“禁用”,但DOM元素的**属性**是布尔值。 (Ooops Xander删除了他的评论:-) – Pointy 2012-04-19 14:41:09
@pointy是的,你是对的。它不同于使用'.attr' – xandercoded 2012-04-19 14:44:49
+1是唯一明智的答案......但是你知道他也需要一个jQuery解决方案。 – rlemon 2012-04-19 14:52:49
其他人已经提供了这个,我试图成为原创! – 2012-04-19 14:53:39
是的,但我总是看到最蠢的jQuery答案...就像如果你要使用库,你应该至少正确使用它。 – rlemon 2012-04-19 14:54:51