9

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

1
  • When setting the checked property, use a boolean - true/false Commented Jul 15, 2013 at 18:14

1 Answer 1

11

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/

Sign up to request clarification or add additional context in comments.

2 Comments

That doesn't fix it though, because toggle doesn't define any parameters :)
Of course, how stupid of me. I was using 'this' but forgot to pass the reference. Thank you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.