【问题标题】:Intercepting Checkbox Click to Confirm the Change拦截复选框单击以确认更改
【发布时间】:2011-08-22 03:22:22
【问题描述】:

我有一个复选框,一旦单击它,我将提交 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");
        }
    )

【问题讨论】:

  • @cwolves 感谢您的评论。我以前不知道。再次感谢。

标签: jquery checkbox click


【解决方案1】:

而不是return false:

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

【讨论】:

  • 我之前试过这个,认为它不起作用,但现在它起作用了。哦,好吧。
  • 之前不行,我只是偷偷把你的电脑修好了。
  • 是的,我也是这么想的。 Websockets FTW。
【解决方案2】:

您只需在帖子周围加上您的确认:

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

【讨论】:

  • confirm 是一个阻塞调用,所以return false 可以正常工作,我认为他想阻止复选框更改,但不确定
  • 是的,我想阻止它改变。
猜你喜欢
  • 1970-01-01
  • 2010-09-16
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2016-08-30
相关资源
最近更新 更多