Javascript 单击按钮可防止表单提交

Javascript 单击按钮可防止表单提交,javascript,jquery,button,submit,form-submit,Javascript,Jquery,Button,Submit,Form Submit,我有一个代码片段可以防止双击样式为按钮的链接 $('.btn').on('click', function(e) { if( $(this).prop('disabled') == true) { $(this).attr("href","javascript:void(0);"); } $(this).prop('disabled',true); })

我有一个代码片段可以防止双击样式为按钮的链接

        $('.btn').on('click', function(e) {

            if( $(this).prop('disabled') == true) {
                $(this).attr("href","javascript:void(0);");
            } 

            $(this).prop('disabled',true);

        });

我的问题是,这段代码似乎阻止任何提交按钮提交表单。这是上述代码的预期行为吗

禁用按钮似乎可以防止事件在DOM中冒泡并触发提交。有几种方法可以解决这个问题,但最简单的方法可能是检查它是否是表单上的提交按钮,然后像这样手动处理它:

$('.btn')。在('click',函数(e)上{
var触发器=$(此);
if(trigger.prop('disabled')==true){
trigger.attr(“href”,“javascript:void(0);”;
}
trigger.prop('disabled',true);//禁用表单提交事件冒泡
if(trigger.is('[type=“submit”],.submit'){//检查是否提交按钮
var form=trigger.closest(“form.form”);//查找表单
if(form.length){//如果表单存在
form.submit();//手动触发表单提交
}
}
});
$(“表格”)。在(“提交”,函数()上{
警报(“提交…”);
});

表格:
提交

非表单按钮.btn
您在提交按钮上也使用了.btn类吗?是的,所有看起来像按钮的答案都使用相同的样式-发现它非常有用,感谢您花时间@mhodges:-)