2013-07-15 4 views
6

Это то, что у меня есть: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>

Идея заключается в том, что вам будет разрешено только для записи в базу данных, если вы делаете одну итерацию. В противном случае, я хочу, чтобы опция «ВКЛЮЧЕНО» отключилась или исчезла, а для ВЫКЛ.

До сих пор я пробовал onChange, onKeyUp и onKeyPress, но ни один из них не работает. Любая идея, что не так с моим кодом?

Благодаря

+0

При установке 'checked' свойство, используйте логическое значение -' истинный '/' false' – Ian

ответ

9

Вы должны передать ссылку на ваш элемент при вызове функции.

onchange="toggle(this)" 

Вам также понадобится переменная для значения в вашей функции:

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

} 

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

+0

Это не исправляет это, потому что 'toggle' не определяет никаких параметров :) – Ian

+0

Конечно, как глупо со мной. Я использовал «это», но забыл передать ссылку. Спасибо. – fpele

Смежные вопросы