0

一連のチェックボックスと input 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のノウハウは、この種のことをグーグルで検索することから来ています。これについて、The Mountain の Google のオラクルよりも優れた情報を持っている人はいますか?

ありがとう...

4

3 に答える 3

6

ドット表記からブラケット表記に変更!

this.form['fixed[0]'].checked
于 2009-03-31T21:28:14.097 に答える
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 に答える
0

HTML でいくつかのいかがわしい慣行を混ぜている可能性があり、JavaScript でそれを行うと、それらは機能しなくなります。

したがって、javascript の this.form.fixed[1] は、実際には「配列 this.form.fixed の 2 番目の項目です。それが問題だと思います。要素に fixed0 と fixed1 という名前を付けてみて、それが機能するかどうかを確認してください。

編集:ピーターが示すように、ブラケット表記を使用することもできます。これにより、入力の名前を編集せずに問題を解決できます。

于 2009-03-31T21:28:05.017 に答える