【问题标题】:javascript confirm dialog not working properlyjavascript 确认对话框无法正常工作
【发布时间】:2009-12-30 10:02:45
【问题描述】:

我一直在尝试让确认框工作,我正在使用 php 和 jquery 在单击删除链接时显示确认框,实际代码:

$(document).ready(function(){
    if (jQuery("a.delete-link").length > 0) {
        $("a.delete-link").bind("click", function(){
            return confirm("Sunteti sigur ca doriti sa stergeti?");
        });
    }
});

链接被称为:

<a href="javascript:void(0);" class="formSubmit delete-link" id="sterge">sterge</a>

该链接用于在点击时提交表单,其代码为:

$(document).ready(function(){
    if ($(".formSubmit").length > 0) {
        if ($(".formSubmit").parents("form").find("input:submit").length == 0) {
            $(".formSubmit").parents("form").append('<div style="width:1px;height:1px;overflow:hidden;"><input style="width:0;height:0;overflow:hidden;" type="submit" /></div>');
        }
        $(".formSubmit").click(function(){
            $(this).parents("form").trigger("submit");
            return false;
        });
    }
});

我确实得到了确认对话框,但是我选择了任何选项,表单提交和删除操作被调用..知道我做错了什么吗?

【问题讨论】:

  • 更新:有什么方法可以让它工作并且仍然将东西保存在单独的功能中? Darin Dimitrov 提供的答案效果最好,但函数不一定要一起调用

标签: php javascript jquery


【解决方案1】:

将确认绑定到表单的onSubmit。这样可以省去很多麻烦,而且无论表单是如何提交的,您都会得到确认。

$( document ).ready ( function () {
    $( 'selector for your form' ).submit ( function () {
        return confirm ( 'Are you sure ...?' );
    } );
} );

【讨论】:

  • 感谢您的解决方案,但由于我必须使用的框架的性质,我不能这样做
  • 在网站的某些部分,为确认框分配的功能独立于表格使用,这将是我的主要问题,您提供的代码似乎每次表格时都要求确认已提交,我不需要,我只需要对某个链接类进行确认。
【解决方案2】:

您有两个点击事件绑定到锚标记。第一个事件显示确认,第二个事件提交表单。

只有在用户确认后才触发表单提交:

$(document).ready(function(){
    if ($(".formSubmit").length > 0) {
        if ($(".formSubmit").parents("form").find("input:submit").length == 0) {
            $(".formSubmit").parents("form").append('<div style="width:1px;height:1px;overflow:hidden;"><input style="width:0;height:0;overflow:hidden;" type="submit" /></div>');
        }
        $(".formSubmit").click(function(){
            if ($(this).hasClass('delete-link') && confirm("Sunteti sigur ca doriti sa stergeti?"))
            {
                $(this).parents("form").trigger("submit");
            }
            return false;
        });
    }
});

【讨论】:

  • 感谢您的回答,这似乎是迄今为止最好的方法,我会对其进行测试并回复您。
  • 确实,这是最有帮助的解决方案,我所做的唯一编辑是:而不是 "if ($(this).hasClass('delete-link') && confirm("Sunteti sigur ca doriti sa stergeti?"))" 块我使用 if ($(this).hasClass('delete-link-form')) { if (confirm("Sunteti sigur ca doriti sa stergeti?")){ $( this).parents("form").trigger("submit"); } 否则返回假; }
【解决方案3】:

你能用这个吗:

<a href="#" onclick"return javascript:void(0);" ... />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多