web-dev-qa-db-ja.com

HTML入力テキストボックスのonChangeが機能しない

これは私が持っているものです:

<script language="JavaScript">
    function toggle() {
        if (this.value=='1') {
            document.getElementById('dbOn').style.visibility='visible';
        }
        else {
            document.getElementById('dbOn').style.visibility='hidden';
            document.getElementById('dbOff').checked='checked';
        }
    }
</script>

<form action="index" method="post">
    <input type="text" name="iterations" value="1" onChange="toggle()" >

    <input type="radio" name="db" value="OFF" checked="checked" id="dbOff" >OFF<br>
    <input type="radio" name="db" value="ON" id="dbOn" >ON
</form>

アイデアは、1回の反復を実行している場合にのみ、データベースへの書き込みが許可されるということです。それ以外の場合は、「オン」オプションを無効または非表示にして、オフを自動的にチェックするようにします。

これまでのところ、onChange、onKeyUp、onKeyPressを試しましたが、どれも機能していないようです。私のコードの何が問題になっているのでしょうか?

ありがとう

8
fpele

関数を呼び出すときに、要素への参照を渡す必要があります。

onchange="toggle(this)"

関数内の値の変数も必要です。

function toggle(element) {
        if (element.value=='1') {
  ...

}

デモ:http://jsfiddle.net/axxCH/1/