2010-05-16 85 views
2

我正在研究一個基於jQuery的待辦事項列表界面,並且打了一下牆。我正在使用的jQuery有點從我讀過的各種教程中被入侵,因爲我是一個初學者。jQuery複選框錯誤

$('#todo input:checkbox').click(function(){ 
    var id = this.attr("value"); 
    if(!$(this).is(":checked")) { 
    alert("Starting."); 
    $.ajax({ 
     type: "GET", 
     url: "/todos/check/"+id, 
     success: function(){ 
     alert("It worked.") 
     } 
    }); 
    } 
}) 

這是我使用的HTML,

<div id="todo"> 
    <input type="checkbox" checked="yes" value="1"> Hello, world. <br /> 
</div> 

任何幫助將不勝感激。作爲參考,我有jQuery警報是爲了調試。我可以告訴代碼不工作的原因是因爲我沒有收到這些警報。謝謝。

回答

3

只是快速一瞥,我認爲if(!$(this).is(":checked"))部分可能是問題。嘗試更類似於if(!$(this).attr('checked'))

另請參見:您的ajax語句中的url看起來不正確。這似乎是一條絕對的道路,而不是與我相對的道路。

還有一件事:不應該var id = this.attr("value");var id = $(this).attr("value");

讓我知道這些提示是否有幫助。否則一般提示:

在你的代碼中,你似乎在同時測試三件事情。首先它必須將事件附加到正確的複選框。然後它必須通過一個條件,然後它必須做出成功的ajax調用。如果三件事情都起作用,我們只會得到反饋,否則如果一件事情不合適,那麼我們無法知道失敗的原因。對每件作品進行測試,確保它能夠正常工作,然後你就會知道在哪裏集中精力。 :-)

+0

非常感謝,它的工作。我認爲主要的錯誤是,打破它是這個vs $(this)錯誤。 – 2010-05-16 21:46:17

+0

@zach啊。是的,我總是想念那個。 – 2010-05-16 22:10:59