2016-03-08 138 views
1

我沒有收到複選框的選中狀態。檢查動態創建。 下面是代碼:點擊複選框後沒有收到複選框事件

'[id^=taskcheckbox_] click' : function(el){ 
    var taskObj={}; 
    var taskCheckBoxId = el.attr("id"); 
    var indexOfTask = taskCheckBoxId.split("_")[2]; 
    var checkedValue = this.element.find("#"+taskCheckBoxId).attr("checked"); 
    var task_id = taskCheckBoxId.split("_")[1]; 
    if(checkedValue == "checked" && checkedValue != undefined){ 
     this.count++; 
}} 

控制選中該複選框後,是不會在if條件。 checkedValue的值始終爲undefined

+0

如果你添加你的HTML也會很好 –

+1

不是'this.element.find(「#」+ taskCheckBoxId)''和'el'一樣,因爲你的代碼暗示它們共享相同的'id' (* taskCheckBoxId是'el' *的''id'屬性)。 –

+0

嗨加比aka G. Petrioli,我只是想到你的觀點..它通過使用下面的工作:var checkedValue = el.prop(「checked」); – Raj

回答

3

使用道具(),而不是代替ATTR ATTR()

►如果你正在使用jQuery 1.6或更高版本,使用道具()()

var checkedValue = this.element.find("#"+taskCheckBoxId).prop("checked"); 

當你使用prop(),則返回值將是布爾

$(document).delegate("[id^=taskcheckbox_]", "click", function(el) { 
    //[id^=taskcheckbox_] click' : function(el){ 
    var taskObj = {}; 
    var taskCheckBoxId = el.currentTarget.id; 
    var indexOfTask = taskCheckBoxId.split("_")[2]; 
    var checkedValue = $(el.currentTarget).is(":checked"); 
    var task_id = taskCheckBoxId.split("_")[1]; 
    if (checkedValue) { 
    console.log('checked') 
     //this.count++; 
    } 
}) 

DEMO FIDDLE

+0

我已經試過這....在這種情況下也..我得到未定義。 – Raj

+0

@Raj將HTML添加到問題中。這將是非常有用的 –

+0

@Raj我更新了我的代碼。請驗證並讓我知道它是否不工作 –