2015-09-17 4 views
1

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

В настоящее время у меня есть

HTML:

<tr> 
    <td colspan="3" align="center" border="1">Certification:</td> 
    <td colspan="3" align="center" border="1"> 
     <select name="certname" id="certname"> 
      <option value=""> </option> 
      <option value="State">State</option> 
      <option value="Other">Other</option> 
     </select> 
     <input type="text" id="othercert" name="othercert" /> 
    </td> 
</tr> 

и JS:

$("#othercert").hide(); 

$(document).ready(function() { 
    $("#certname select").change(function (e) { 
     if ($(this).val() != "Other") { 
      $("#othercert").hide(); 
     } 
     else { 
      $("#othercert").show(); 
     }  
    }); 
}); 

Я не уверен, куда идти отсюда или что происходит не так - любая помощь приветствуется.

+1

или может у жесткого кода CSS visibilitiy: скрытый внутри #othercert тега? – g2000

ответ

2

Ваш селектор думает select является ребенок #certname, а не его id. Оно должно быть:

select#certname и не #certname select

JS Fiddle

$("#othercert").hide(); 

$(document).ready(function() { 
    $("select#certname").change(function (e) { 
     if ($(this).val() != "Other") { 
      $("#othercert").hide(); 
     } else { 
      $("#othercert").show(); 
     } 
    }); 
}); 
+0

это сработало, спасибо - как ни странно, мой синтаксис работал на другой странице с другим идентификатором –

2

Ваш change Селектор неправильный. select не ребенок #certname, поэтому изменить на следующее:

$("select#certname").change(function (e) { 

http://jsfiddle.net/ndgadeb1/


Кроме того, необходимо положить первоначальный шкурку внутри документа готовой функции:

$(document).ready(function() { 
     $("#othercert").hide(); 

Однако, если вы хотите скрыть при загрузке страницы, вы можете просто сделать это в CSS:

#othercert{ 
    display:none; 
} 

Таким образом, это не будет flash на странице load.