2013-07-15 28 views
6

Questo è quello che ho:HTML non funziona 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>

L'idea è che vi sarà solo permesso di scrivere nel database se si sta facendo un'iterazione. Altrimenti, voglio che l'opzione "ON" diventi disabilitata o scompaia e che venga controllato automaticamente da OFF.

Finora, ho provato su Change, onKeyUp e onKeyPress, ma nessuno di loro sembra funzionare. Qualche idea di cosa c'è di sbagliato nel mio codice?

Grazie

+0

Quando si imposta la proprietà 'checked', utilizzare un valore booleano -' vero '/' false' – Ian

risposta

9

È necessario passare un riferimento al vostro elemento quando si chiama la funzione.

onchange="toggle(this)" 

avrete anche bisogno di una variabile per il valore nella funzione:

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

} 

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

+0

Questo però non risolve il problema, perché 'toggle' non definisce alcun parametro :) – Ian

+0

Ovviamente, quanto sono stupido da parte mia. Stavo usando "questo" ma ho dimenticato di passare il riferimento. Grazie. – fpele