2011-12-19 2 views
0

У меня есть форма, которая показывает и скрывает определенные поля в зависимости от того, что значение определенного поля, в JavaScript, что делает это ниже,Значение не отображается, даже если он находится в HTML

jQuery(function(){ 

    jQuery('.voice_over, .commercial').hide(); 

    if(jQuery("#type option:selected").val() == "voice over") 
    { 
     jQuery('.voice_over, .role').fadeIn(500); 
     jQuery('.generic, .fieldError, .commercial').fadeOut(500).val(''); 
    } 

    if(jQuery("#type option:selected").val() == "television" || jQuery("#type").val() == "theatre" || jQuery("#type").val() == "radio" || jQuery("#type").val() == "film" || jQuery("#type").val() == "commercial") 
    { 
     jQuery('.voice_over, .commercial').fadeOut(500).val(''); 
     jQuery('.generic, .role').fadeIn(500); 
    } 

    if(jQuery("#type option:selected").val() == "commercial") { 
     jQuery('input[name="production_role"], .voice_over, .generic, .role').fadeOut(500).val(''); 
     jQuery('.commercial').fadeIn(500); 
    } 

    jQuery("#type").change(function(){ 

     if(jQuery(this).val() == "voice over") 
     { 
      jQuery('.generic, .commercial, .fieldError').fadeOut(500).val(''); 
      jQuery('.voice_over').fadeIn(500); 
     } 
     else if(jQuery(this).val() == "commercial") { 
      jQuery('input[name="production_role"], .role, .generic, .fieldError').fadeOut(500).val(''); 
      jQuery('.commercial').fadeIn(500); 
     } 
     else if(jQuery(this).val() == "television" || jQuery(this).val() == "theatre" || jQuery(this).val() == "radio" || jQuery(this).val() == "film") 
     { 
      jQuery('.commercial, .fieldError, .voice_over').fadeOut(500).val(''); 
      jQuery('.generic, .role, input[name="production_role"]').fadeIn(500); 
     } 

    }); 
}); 

В HTML, что я получаю следующим образом (это генерируется с помощью PHP),

<form action="http://urbantalent.factoryagency.co.uk/admin/candidates/add_step_3/id/177/edit" method="post" accept-charset="utf-8" class="step_3"> 
       <label for="type">Production Type</label> 
<select name="production_type" id="type"> 
<option value="television">Television</option> 
<option value="theatre">Theatre</option> 
<option value="film">Film</option> 
<option value="commercial" selected="selected">Commercial</option> 
<option value="voice over">Voice Over</option> 
<option value="short film">Short Film</option> 

<option value="corporate">Corporate/Training</option> 
<option value="radio">Radio</option> 
</select> 
       <label style="display: none;" class="generic">Production Title</label> 
     <input style="display: none;" name="production_title" value="" class="generic" type="text"> 
       <label style="display: none;" class="voice_over">Project Type</label> 
     <input style="display: none;" name="production_project_type" value="" class="voice_over" type="text"> 
       <label style="display: none;" class="voice_over">Name/Product</label> 

     <input style="display: none;" name="production_product" value="" class="voice_over" type="text"> 
       <label style="display: none;" class="voice_over">Production Agency</label> 
     <input style="display: none;" name="production_agency" value="" class="voice_over" type="text"> 
       <label style="display: none;" class="role">Role</label> 
     <input style="display: none;" name="production_role" value="" type="text"> 
       <label style="display: none;" class="generic">Director</label> 
     <input style="display: none;" name="production_director" value="" class="generic" type="text"> 

       <label style="display: none;" class="generic">Production Company</label> 
     <input style="display: none;" name="production_company" value="" class="generic" type="text"> 
       <label style="display: block;" class="commercial">Commercial Details</label> 
     <input style="display: inline;" name="production_details" value="Walking down the street looking happy - Daz (2010)" class="commercial" type="text"> 
       <input name="career_overview_id" value="177" type="hidden"> 
       <input name="candidate_id" value="" type="hidden"> 
       <input name="form_step" value="3" type="hidden"> 
        <input name="step_3" value="Save" type="submit"> 

      </form> 

Как вы можете видеть production_details поле имеет значение, но я не вижу ничего в поле его себе.

Я вижу значение штраф, когда я удаляю javascript, поэтому могу только предположить, что там есть ошибка, но я не вижу его.

+0

Пожалуйста сделайте http://jsfiddle.net для нас. – noob

+1

http://jsfiddle.net/Qv54H/ Это удаляет значение '$ ('. Generic, .fieldError, .commercial'). FadeOut (500) .val ('');' – mplungjan

+0

Попробуйте опубликовать минимальное который демонстрирует проблему. Будет легче увидеть, что происходит, и вы получите гораздо больше шансов получить хороший ответ. –

ответ

2
if(jQuery("#type option:selected").val() == "television" || jQuery("#type").val() == "theatre" || jQuery("#type").val() == "radio" || jQuery("#type").val() == "film" || jQuery("#type").val() == "commercial") 
    { 
     jQuery('.voice_over, .commercial').fadeOut(500).val(''); 
     jQuery('.generic, .role').fadeIn(500); 
    } 

Вы устанавливаете val в пустую строку.

важная часть:

if(... jQuery("#type").val() == "commercial"){ 
    jQuery('..., .commercial')...val(''); 
} 
+0

Я должен был ответить вместо комментариев: | – mplungjan

+0

Да, но я не видел вашего комментария, поэтому я думаю, что, возможно, побил бы вас на несколько секунд. Прямо около того времени. –

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