【发布时间】:2010-09-18 10:04:43
【问题描述】:
我正在尝试使用 javascript 禁用/启用 HTML 页面的多个表单元素。我有一个包含许多字段的表单,表单的每一行都有一个复选框来启用/禁用该行上的元素。
问题是,只有前两个表单元素被禁用(无论顺序如何)。之后,函数中剩余的javascript代码将不再执行。
这是代码(它是每个复选框的 onChange 属性调用的函数的一部分):
document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_quantity")[0].disabled = !theBox.checked;
document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_description")[0].disabled = !theBox.checked;
document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_price")[0].disabled = !theBox.checked;
document.getElementsByName(prefix + "fase" + phaseNumber + "_" + objectNumber + "_language")[0].disabled = !theBox.checked;
每个表单元素都有一个不同(且唯一)的名称,单行代码可以正常工作...直到您将它们放在一起。 例如:在上面的代码中,“数量”和“描述”字段将被禁用/启用,但“价格”和“语言”不会。
如果我改变行的顺序,前两个总是被执行,无论如何。 那么每一行代码都不行;就像评论一样。我什至放了一些警报来尝试调试,但是如果我在上面的代码之后插入它们,它们就会被忽略(根本没有显示对话框)。元素名称正确。
我确定我在某个地方犯了一个错误,但是由于单行代码可以正常工作,我不知道该去哪里找……这让我发疯了!
拜托,我真的需要一些帮助。
【问题讨论】:
标签: javascript forms checkbox