Javascript函数执行意外停止

时间:2016-02-20 05:10:28

标签: javascript jquery

alert("setprice before");
$(".quantity").each($(".quantity").attr("disabled", false));
alert("setprice after");

我有一个包含多个类.quantity的输入字段的表单,一旦更改了必填字段,就会启用它。

$(".quantity").each($(".quantity").attr("disabled", false));

此线路之前的警报呼叫正常,呼叫本身按预期工作,但呼叫后的警报消息不会出现。我在此行之后没有任何工作,但行本身确实按预期执行。

某些东西必须打破,但我看不清楚。有什么建议吗?

2 个答案:

答案 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);