2011-06-07 103 views
0

在我的腳本中,我正在使用.click事件。當我點擊我的複選框時,值正在發送,但沒有打勾。所以使用jquery我「點擊」複選框,但沒有工作。有代碼:.click事件和複選框

$(".checkinput").click(function() { 

var id = $(this).attr('id') 
var dumpthis = $(this); 
var data = "id=" + id; 
$.ajax({ 
type: "POST", 
url: "change_achievement.php", 
data: data, 
success: function() 
{ 
    if(dumpthis.attr('checked') 
{ 
dumpthis.attr('checked', true); 
} 
else 
{ 
dumpthis.attr('checked', false); 
} 
} 
}); 

return false; 
}); 
+0

也許改變事件會更好? – GordonM 2011-06-07 19:17:53

+0

不知道這是一個錯字還是迷失在編輯中。但你缺少a)在這條線上:if(dumpthis.attr('checked') – Patricia 2011-06-07 19:20:28

回答

1

您在處理程序結束時返回false,顯然該複選框將不會被檢查。從您的點擊處理程序中刪除語句return false;

所以處理程序,現在應該是這樣的:

$(".checkinput").click(function() { 

    var id = $(this).attr('id') 
    var dumpthis = $(this); 
    var data = "id=" + id; 
    $.ajax({ 
    type: "POST", 
    url: "change_achievement.php", 
    data: data, 
    success: function() 
    { 
     if(dumpthis.attr('checked') 
       { 
       dumpthis.attr('checked', true); 
       } 
       else 
       { 
       dumpthis.attr('checked', false); 
       } 
    } 
    }); 
     //######THE STATEMENT BELOW SHOULD BE COMMENTED FOR THE CHECKBOX TO WORK 
    //return false; 
}); 
+0

現在它根本不工作 – icepopo 2011-06-07 20:16:18

+0

你是否得到任何錯誤? – Chandu 2011-06-07 23:11:25

+0

不,它只是不工作 – icepopo 2011-06-08 06:17:39

0

那是因爲你正在返回在點擊()處理程序結束假的,這個停下來影響您的複選框的事件。嘗試返回true;看看它是否可以解決您的問題

0

我推薦$(".checkinput").change() ...