1

我有一个表格,我有一个“取消”和提交按钮。当用户提交表单时,如果未填写必填字段,我想提醒(“错误”)并停止提交表单。

这是我的简单 jquery 代码,但是当用户单击警报框上的确定按钮时,它会继续提交。

<script>
$(document).ready(function () {
    $('#<%=btn_reddet.ClientID %>').click(function (event) {
        alert("Error!");
        event.preventDefault();
    });
});
</script>

如何让它在警报后停止提交?

4

4 回答 4

1

而不是.click,你可以使用.submit,你只需要返回false来停止表单提交

$('#formID').on('submit',function (event) {
        alert("Error!");
        return false;
});
于 2013-06-14T14:12:43.377 回答
1

使用$('form').submit()事件而不是$('submit_button').click(). 然后return false如果验证失败:

$(document).on('submit','form',function(e) {
    var validated = true; 
    // some validation code which sets 'validated = false' if it fails
    return validated;
});
于 2013-06-14T14:12:54.163 回答
0

如果你想使用

event.preventDefault();

那么我相信也需要遵循

event.stopPropagation();

否则你可以只使用return false。

于 2013-06-14T14:15:31.677 回答
0

event.preventDefault() 和 return false 的工作方式不同,当出现问题时存在差异(阅读:错误)以及 event.preventDefault() 是否已经执行,这里是一个重要的例子和为什么 return false 并不总是有效:

$('a').click( function(e){
    $(this).css("background", "green");
    err();  // err is not defined, so JavaScript will throw error, and the browser will ignore rest of the code (return false;). The browser will perform the default action.
    return false;
});
$('a').click( function(e){
    e.preventDefault();
    $(this).css("background", "green");
    err();  // err is not defined, so JavaScript will throw error, and the browser will ignore rest of the code. We already called event.preventDefault() so the browser will not perform default action.
});
于 2013-06-14T14:34:17.787 回答