2010-05-16 90 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