alert("setprice before");
$(".quantity").each($(".quantity").attr("disabled", false));
alert("setprice after");
我有一个包含多个类.quantity
的输入字段的表单,一旦更改了必填字段,就会启用它。
$(".quantity").each($(".quantity").attr("disabled", false));
此线路之前的警报呼叫正常,呼叫本身按预期工作,但呼叫后的警报消息不会出现。我在此行之后没有任何工作,但行本身确实按预期执行。
某些东西必须打破,但我看不清楚。有什么建议吗?
答案 0 :(得分:1)
jQuery .each()
方法接受一个函数。但是你要传递一个jQuery对象。
您的代码应该只是
$(".quantity").attr("disabled", false);
因为jQuery setter方法默认迭代集合中的所有元素。
或$(".quantity").prop('disabled', false)
,如评论中所述。
未处理的错误会阻止脚本执行,这就是您没有看到后续警报的原因。
答案 1 :(得分:0)
jQuery.each
接受函数作为参数,因此它应该是:
$(".quantity").each(function() {
$(this).removeAttr("disabled");
});
此外,要删除属性,您必须使用.removeAttr()
函数。
正如@Tushar所指出的,如果您只想更改多个元素的属性,您可以这样做:
$(".quantity").prop("disabled", false);