2013-10-16 69 views
0

你好我正在使用下列功能從複選框中刪除所需的屬性,以防單擊任何複選框。javascript刪除必需屬性不起作用

$(document).ready(function(){ 
    $(".aboveage5").click(function(){ 
      if ($('input[name="tipo_de_producto_que_fabrica[]"]').val() != "") { 
       $('input[name="tipo_de_producto_que_fabrica[]"]').removeAttr('required'); 
       //Slide Down Effect 
      } else {   
       $('input[name="tipo_de_producto_que_fabrica[]"]').prop('required',true); //Slide Up Effect 
      } 
     });    
    }); 

當我加載頁面,如果我點擊提交按鈕之前點擊其中的一些,一切工作正常。但是,如果我沒有做出選擇,並且對所需字段的檢查表明我必須選擇任何複選框不起作用。我的意思是它正在工作,它刪除了必需的屬性,但我擊中提交沒有發生,我的意思是一個文本字段仍然需要,但不是說在代碼中的哪個字段我可以看到該屬性被刪除,但它不提交任何東西,它保持在同一頁面上。

這是輸入:

<input type="checkbox" required="required" class="aboveage5" name="tipo_de_producto_que_fabrica[]" value="Val 1" />val 1<br /> 
<input type="checkbox" required="required" class="aboveage5" name="tipo_de_producto_que_fabrica[]" value="Val 2" />Val 2<br /> 
+0

你應該使用'.prop(「必要」,假)',而不是'removeAttr' – Bergi

回答

0

使用:checked僞選擇匹配選中和未選中複選框。

$(document).ready(function() { 
    $(".aboveage5").click(function() { 
     $('input[name="tipo_de_producto_que_fabrica[]"]:not(:checked)').removeAttr('required'); 
     $('input[name="tipo_de_producto_que_fabrica[]"]:checked').attr('required', true); 
    }); 
}); 

FIDDLE

+0

感謝Barmar,你是男人,這個工程我外觀極好有別的地方的錯誤,我將調查,但它工作正常。 –