JavaScript скрыть дополнительное текстовое поле в существующем скрипте - PullRequest
0 голосов
/ 27 августа 2010

Я использую этот код: http://jsfiddle.net/q3nUS/

$('#cf11_field_20').change(function() {
  $("#li-11-22")[$(this).val() == "full03_accommodation_hotel" ? 'show' : 'hide']("fast");
}).change();

$('#cf11_field_22').change(function() {
  $("#li-11-23")[$(this).val() == "full03_hotel_other" ? 'show' : 'hide']("fast");
}).change();

Работает нормально, поэтому текстовое поле появляется только тогда, когда: в первом раскрывающемся меню "Отель" выбрано И во втором раскрывающемся списке "Другое"

Но как только вы измените первый выпадающий список на что-то отличное от "Отель", мне, очевидно, нужно будет скрыть оба поля. В настоящее время текстовое поле остается.

Как изменить код, который также скрывается в текстовом поле?Я знаю, как сделать это логически, но у меня проблемы с синтаксисом.

Я пробовал что-то вроде этого:

    $('#cf11_field_20').change(function() {
      $("#li-11-22")[$(this).val() == "full03_accommodation_hotel" ? 'show' : 'hide']("fast");
      $("#li-11-23")[$(this).val() != "full03_accommodation_hotel" ? 'hide']("fast");
    }).change();  
    $('#cf11_field_22').change(function() {
      $("#li-11-23")[$(this).val() == "full03_hotel_other" ? 'show' : 'hide']("fast");
    }).change();

Здесь действительно возникают проблемы с правильным синтаксисом.Спасибо!

1 Ответ

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

Когда вы используете condition ? value if true : value if false после условия, вы не можете опустить :, иначе это синтаксическая ошибка (что происходит, когда условие false?).Если вы не хотите, чтобы что-либо происходило, когда условие ложно, вместо этого используйте оператор if, например: (http://jsfiddle.net/q3nUS/2/):

if ($(this).val() != "full03_accommodation_hotel") $("#li-11-23").hide("fast");

Надеюсь, это поможет.

...