2012-12-08 84 views
1

林困惑,爲什麼這個心不是工作,我不能夠調試checkAll通過屬性不會觸發?

我有一組checkboxe的按屬性值 分組,並具有在每個組的腳相匹配的屬性值checkall類當我點擊這個我希望其他checkboxs切換到同一狀態

jQuery的

$(function() { 
    $('.checkall').click(function() { 
     var myactivemonth=$(this).attr("data-mymonth"); 
     console.log(myactivemonth); 
     var myactivebox="a_"+myactivemonth; 
     $('checkbox[data_mymonth=myactivemonth]').attr('checked','checked'); 
}); 

HTML

<input id="alloInv" class="tip_trigger" type="checkbox" data-mymonth="a_October2012" title="13.94" value="2018441" name="alloInv"> 
<input id="alloInv" class="tip_trigger" type="checkbox" data-mymonth="a_October2012" title="10.94" value="201845" name="alloInv"> 
<input class="checkall" type="checkbox" data-mymonth="October2012"> 

似乎都不錯,但包裝盒是不滴答作響:(

回答

2

您有一系列的錯誤的東西

  1. checkbox應該:checkbox
  2. data_mymonth應該data-mymonth
  3. myactivebox需求是動態通過
  4. 來自代碼中的問題您正在丟失最後的});

一對夫婦的改進以及

  1. 你應該使用.prop()而不是.attr()爲元素的實際性能。 $(this).data('mymonth');
  2. 使用.data()data-檢索值在http://jsfiddle.net/6Nv3N/


    屬性

所以

$(':checkbox[data-mymonth="' + myactivebox + '"]').prop('checked',true); 

工作演示更新

我錯過了你的問題

要處理切換,您需要將checked屬性設置爲在.checkall元素的複選框的撥動一部分。

.prop()方式(demo

$(':checkbox[data-mymonth="' + myactivebox + '"]').prop('checked', this.checked); 

.attr()方式

$(':checkbox[data-mymonth="' + myactivebox + '"]').attr('checked', this.checked); 
+0

對不起,因爲新來jquery和cocoffany的罪惡的 2快速的東西,我嘗試使用道具()但它返回一個錯誤道具不是一個函數?可能是因爲使用jQuery 1.4.2?或其他原因? 一旦更改回attr,將它們設置爲檢查但不會切換時,我改變了你的小提琴,但即使是doosnt工作,是否有更好的方法來切換複選框切換選項,並保持同步? –

+0

@StevenMoffat,不用擔心:)是的,'.prop'是在jquery v1.6中添加的。更新答案以切換複選框.. –

0

感謝這個做到了但是我相信那裏有一個更合適的方法來切換複選框的狀態?

$(function() { 
    $('.checkall').click(function() { 
     var myactivemonth = $(this).attr("data-mymonth"); 
     var mystate = $(this).attr("checked"); 

      if (mystate==undefined) {mystate=false;}; 

     console.log(myactivemonth); 
     var myactivebox = "a_" + myactivemonth; 
     $(':checkbox[data-mymonth="' + myactivebox + '"]').attr('checked',mystate); 
    }); 
}); 

PS更新了jquery squiggle,這是一個有用的工具!

相關問題