0

我有一系列复选框和输入 type="text" 区域,其中当文本区域中的值更改时,我需要将复选框的状态设置为 true。很简单。我已经成功地做到了:

<input name="fixed" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed.checked=true">

哪个工作正常。您必须编辑该字段然后单击它,但这对我的需要很好:

...但是当我切换到这个时:

<input name="fixed[0]" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed[0].checked=true">
<input name="fixed[1]" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed[1].checked=true">

编辑时,我的复选框没有任何变化:

恐怕我唯一的 javascript 知识来自谷歌搜索这类事情。有没有人比山上的谷歌甲骨文有更好的信息?

谢谢...

4

3 回答 3

6

从点符号切换到括号符号!

this.form['fixed[0]'].checked
于 2009-03-31T21:28:14.097 回答
0

可能是您在 HTML 中混合了一些阴暗的做法,而当您在 javascript 中这样做时,它们就会崩溃。

所以javascript中的this.form.fixed[1]真的说“数组this.form.fixed中的第二项。所以我认为这就是问题所在。尝试命名你的元素fixed0和fixed1,看看是否有效。

编辑:您也可以使用括号表示法,如 Peter 所示,这应该可以在不编辑输入名称的情况下解决问题。

于 2009-03-31T21:28:05.017 回答
0

让自己的生活更轻松。

为您尝试引用的元素创建唯一 ID,并从您绑定事件的元素中引用它们:

<input name="fixed[0]" type="checkbox" id="fixed_0">
<input name="stuff" type="text" onchange="document.getElementById('fixed_0').checked=true">
<input name="fixed[1]" type="checkbox" id="fixed_1">
<input name="stuff" type="text" onchange="document.getElementById('fixed_1').checked=true">
于 2009-03-31T21:33:28.827 回答