2013-01-23 2 views
0

Мне нужно сделать две вещи в одном событии DOMМножественное условие на события dom

Я попытался использовать это, но это не сработает.

HTML

<input type="test" name="box" id="box" onkeyup="keyPressedBox(this)"> 
<input type="test" name="name" id="name" onkeyup="keyPressedName(this)"> 

<input type="checkbox" class="form-checkbox" checked="checked" id="sdp_1" name="sdp_1" /> 
<input type="checkbox" class="form-checkbox" checked="checked" id="sdp_2" name="sdp_2"/> 

Javascript

<script> 
    function keyPressedName(str) { 
     if ($(str).val() != '') { 
      $('#sdp_2').prop('checked', false); 
     } else { 
      $('#sdp_2').prop('checked', true); 
     } 

     return true; 
    } 

    function keyPressedBox(str) { 
     if ($(str).val() != '') { 
      $('#sdp_1').prop('checked', false); 
     } else { 
      $('#sdp_1').prop('checked', true); 
     } 
     return true; 
    } 


</script> 

Любые идеи?

+1

Dont»глушить все в инлайн обработчика для начинающих. Похоже, что у тебя есть еще несколько слабых вещей. Переместите это в именованную функцию, которую вы затем можете присоединить, а затем также объясните, что представляют собой эти префиксы '#'. Отформатируйте этот блок, и я предполагаю, что также исправьте синтаксис, чтобы он имел смысл. –

+0

Строка '' # box'' не имеет свойства 'значение'. Что ожидать * # box *? – Phil

+0

Измените свой '$ ('# name'). Val()! == ''' to '$ ('# name'). Val()! = ''' – Sahal

ответ

0

ли что-то вроде этого

onkeypress="keyPressed();" 

И keyPressed. Имейте 2 функции как в окне input. функции будут,

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
     function keyPressedName(str) { 
      if ($(str).val() != '') { 
       $('#sdp_2').prop('checked', false); 
      } else { 
       $('#sdp_2').prop('checked', true); 
      } 

      return true; 
     } 

     function keyPressedBox(str) { 
      if ($(str).val() != '') { 
       $('#sdp_1').prop('checked', false); 
      } else { 
       $('#sdp_1').prop('checked', true); 
      } 
      return true; 
     } 

    </script> 

HTML будет попробовать

<input type="test" name="box" id="box" onkeyup="keyPressedBox(this)"> 

<input type="test" name="name" id="name" onkeyup="keyPressedName(this)"> 

JS скрипку

http://jsfiddle.net/RMEKh/2/

+0

I попробовал ваш код, но есть синтаксическая ошибка. – user1852728

+0

Я отредактировал, вы можете попробовать сейчас? .. скажите мне, что '' # box'.value'. Вы должны отредактировать это – Sahal

+0

Используете ли вы 'jquery'? – Sahal

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