2013-10-16 32 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