2011-05-10 61 views
1

我有一個複選框,一旦它被單擊,我將提交一個AJAX請求來更新字段。但是,首先我想打電話給confirm以確保這是他們想要的。截取複選框單擊以確認更改

這不起作用:

$(".mycheckbox") 
    .live("click", 
     function(){ 
      if(!confirm("Sure about that?")){ return false; } 
      $.post($(this.form).attr("action")+".js", 
        $(this).serialize()+"&_method=put", 
        null, 
        "script"); 
     } 
    ) 
+0

@cwolves感謝。我以前不知道。再次感謝。 – thecodeparadox 2011-05-10 03:56:27

回答

3

,而不是return false

function(ev){ 
    if(!confirm("Sure about that?")){ 
     ev.preventDefault(); 
     return; 
    } 
    ... 
} 
+0

我之前嘗試過,認爲它沒有用,但現在它確實。好吧。 – Dex 2011-05-10 03:51:53

+1

它沒有工作,我只是祕密地修復你的電腦,以便它會。 – 2011-05-10 03:52:49

+0

是的,這也是我的想法。 Websockets FTW。 – Dex 2011-05-10 03:58:42

0

你只需要環繞後您的確認:對您評論

$(".mycheckbox") 
    .live("click", 
     function(){ 
      if(confirm("Sure about that?")){ 
        $.post($(this.form).attr("action")+".js", 
        $(this).serialize()+"&_method=put", 
        null, 
        "script"); 
      } 
     } 
    ) 
+0

確認是一個阻塞呼叫,所以'返回false'將正常工作,我認爲他想防止複選框發生變化,但不知道 – 2011-05-10 03:50:01

+0

是的,我想阻止它改變。 – Dex 2011-05-10 03:59:34