ユーザーがテキストボックスに何かを入力するとすぐにチェックボックスをチェックする次のコードがあります。これは、単一のテキスト ボックスでは問題なく機能します。
function activateCheckbox() {
if (document.myForm.box1.checked == false) {
document.myForm.box1.checked = true;
}
}
<tr>
<td><input type="text" id="mySearch1" name="mySearch1" size="40" onkeypress="activateCheckbox()"/></td>
<td><input type="checkBox" id="box1" name="box1"/></td>
</tr>
ただし、それぞれに対してチェックボックスがある複数のテキスト ボックスがあり、対応するチェックボックスのみをチェックする必要があるとします。関数にパラメーターを渡すことで上記のコードを次のように変更しましたが、「id」の代わりにチェックボックス名を受け入れるため、「document.myForm.id.checked」が機能しないため、機能しません。より良い代替案があるかどうか、またはコードを変更して機能させるにはどうすればよいかを提案してください。
function activateCheckbox(id) {
if (document.myForm.id.checked == false) {
document.myForm.id.checked = true;
}
}
<tr>
<td><input type="text" id="mySearch1" name="mySearch1" size="40" onkeypress="activateCheckbox('box1')"/></td>
<td><input type="checkBox" id="box1" name="box1"/></td>
</tr>
<tr>
<td><input type="text" id="mySearch2" name="mySearch2" size="40" onkeypress="activateCheckbox('box2')"/></td>
<td><input type="checkBox" id="box2" name="box2"/></td>
</tr>
<tr>
<td><input type="text" id="mySearch3" name="mySearch3" size="40" onkeypress="activateCheckbox('box3')"/></td>
<td><input type="checkBox" id="box3" name="box3"/></td>
</tr>