Search code examples
javascripthtmltextboxonchange

HTML input textbox onChange not working


This is what I have:

<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>

The idea is that you will only be allowed to write to the database if you are doing one iteration. Otherwise, I want the "ON" option to become disabled or disappear and for OFF to be checked automatically.

So far, I have tried onChange, onKeyUp and onKeyPress, but none of them appear to work. Any idea what is wrong with my code?

Thanks


Solution

  • You need to pass a reference to your element when calling the function.

    onchange="toggle(this)"
    

    You'll also need a variable for the value in your function:

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

    DEMO: http://jsfiddle.net/axxCH/1/