2010-12-08 3 views
1

Итак, у меня есть список гонок для отличной формы. есть поле с именем «other указать» для тех людей, которые не соответствуют ни одному из других критериев. Мне нужно, чтобы текстовая книга стала видимой, когда проверяется «другое задание» и исчезает, когда это не так. Я был в состоянии сделать поле появляться, когда другой проверен, но не исчезнет, ​​когда он не установлен. Любая помощь будет принята с благодарностью. Благодарю.Переключить видимость текстового поля в зависимости от статуса флажка - jQuery


Jscript

<script type="text/javascript" src="jquery.js"> 
<script language="JavaScript"> 

$(function(){ 
    $('#other').click(function(){ 
    $('#otherrace').toggle(
      function(event) { 
      $(event.target).css('visible'); 
      }, 
      function(event) { 
      $(event.target).css('hidden'); 
      } 
     ); 
     }); 


    </script> 

HTML

<input type="checkbox" name="race" id="other"value="other" />Other, specify<br /> 
<div style="visibility:hidden" id="race"><input type="text" name="fname" size="25" maxlength="25" id="otherrace" /></div> 

ответ

2

ли это так:

Пример:http://jsfiddle.net/patrick_dw/K3kvE/

$('#other').change(function(){ 
    $('#otherrace').parent().css('visibility', this.checked ? 'visible' : 'hidden'); 
}); 

или использовать display:none вместо visibility:hidden и сделать это:

Пример:http://jsfiddle.net/patrick_dw/K3kvE/1/

$('#other').change(function(){ 
    $('#otherrace').parent().toggle(this.checked); 
}); 

, как вы использовали .toggle() был как "тумблер событие", что означает эффективно назначали событие click, которое переключает между выполнением функций, которые вы передаете.

Потому что родитель otherrace, который будучи спрятан, вам нужно пройти до его использования .parent(), а затем установить его свойство visibility к hidden или visible в зависимости от состояния флажка.

Второе решение изменилось с использования visibility собственности на использование display, так что toggle() можно назвать другим способом. Так, как он теперь называется, он переключает между show() и hide(), которые устанавливают свойство display от none до его первоначальной настройки и обратно.

+0

это не сработало:/ – dman 2010-12-08 18:39:48

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