Показать поле, если выбрано определенное значение параметра - должно работать при загрузке страницы - PullRequest
1 голос
/ 27 августа 2010

Этот код гения отлично работает для флажков:

$(document).ready(function() {
   $("#Languages-spoken-and-understood-8").change(function() {
      $("#li-2-21")[$(this).is(":checked") ? 'show' : 'hide']("fast")
  }).change();
});

Мне нравится то, что он работает под нагрузкой.

Я пытался изменить его длявыберите поле.Код автоматически генерируется cforms в WordPress.

<select name="Severity-of-your-symptoms" id="Severity-of-your-symptoms" class="cformselect" >
    <option value="full01_severity_notselected" selected="selected">Please select...</option>
    <option value="Mild">Mild</option>
    <option value="Moderate">Moderate</option>
    <option value="Severe">Severe</option>
    <option value="full01_severity_other">Other</option>
</select>

Это то, что я пытался:

  $('#Severity-of-your-symptoms').change(function() {
    $("#li-10-14")[("#Severity-of-your-symptoms[value='full01_severity_other']").attr('selected', 'selected') ? 'show' : 'hide']("fast")
  });change();

Очевидно, что это не работает.Только если выбрано «Другое», должно появиться текстовое поле.Есть ли способ снова использовать этот изящный код или мне нужна большая функция?

Спасибо!

1 Ответ

2 голосов
/ 27 августа 2010

Вы почти на месте, это будет гораздо более короткий способ сделать это:

$('#Severity-of-your-symptoms').change(function() {
  $("#li-10-14")[$(this).val() == "full01_severity_other" ? 'show' : 'hide']("fast");
}).change();

Вы можете попробовать здесь .

КогдаДля получения или установки значения <select> (или любого другого элемента типа ввода) вы можете использовать .val().Если кто-то захочет эту без анимации, это будет выглядеть так:

$('#Severity-of-your-symptoms').change(function() {
  $("#li-10-14").toggle($(this).val() == "full01_severity_other");
}).change();
...