2013-10-16 49 views
0

您好,我正在嘗試根據previouse的選擇製作javascrip驗證選項。根據選擇在輸入上傳遞requred屬性

這裏是我的表單代碼:

<li><label for="age1">Question One ?</label> 
<input type="radio" name="tienes_negocio" value="Yes" class="aboveage1" /> Si 
<input type="radio" name="tienes_negocio" value="No" class="aboveage1" /> No</li></ol> 

<ol id="parent1" class="formset2"> 
<li><label for="age2">Question Two ?</label> 
<input type="radio" name="labora_negocio" value="Yes" required="true" class="aboveage2" /> Si 
<input type="radio" name="labora_negocio" value="No" required="true" class="aboveage2" /> No</li> 

Basicaly如果選擇否FRM的第一選擇,我想通過selecond裏面選擇所需要的屬性,

這裏是JavaScript代碼:

$(document).ready(function(){ 
    $("#parent1").css("display","none"); 

    $(".aboveage1").click(function(){ 
     if ($('input[name=tienes_negocio]:checked').val() == "No") { 
      $("#parent1").slideDown("fast"); //Slide Down Effect 
      $('input[name="labora_negocio"]').prop('required', true); 

     } else { 
      $("#parent1").slideUp("fast"); 
      $('input[name="labora_negocio"]').prop('required', false); //Slide Up Effect 
     } 
    });    
}); 

這是我使用的傳遞requred屬性: $('#labora_negocio').attr('required');

代碼

問題是,當您選擇否時,它不會傳遞任何東西。

回答

1

你有兩個具有相同id的元素,在html中這是一個no no。另外,在設置活動元素狀態時,應該設置元素屬性而不是其(html)屬性。
您可以通過名稱選擇單選按鈕並通過prop設置屬性。

<li><label for="age2">Question Two ?</label> 
<input type="radio" name="labora_negocio" value="Yes" id="labora_negocio1" class="aboveage2" /> Si 
<input type="radio" name="labora_negocio" value="No" id="labora_negocio2" class="aboveage2" /> No</li> 
$(".aboveage1").click(function(){ 
    if ($('input[name=tienes_negocio]:checked').val() == "No") { 
     $('[name="labora_negocio"]').prop('required', true); 
     $("#parent1").slideDown("fast"); //Slide Down Effect 

    } else { 
     $('[name="labora_negocio"]').prop('required', false); // not sure about this 
     $("#parent1").slideUp("fast"); //Slide Up Effect 
    } 
});    
+0

即使這樣,沒有什麼是TE代碼內改變。 –

+0

@JohnSiniger在使用'.onchange()'之前,然後將其改爲'.onclick()'? – Musa