如何在不使用OnClientClick的情况下提交表单之前运行jQuery脚本

时间:2018-04-16 22:18:30

标签: javascript jquery asp.net webforms

我有一个ASP.Net WebForms应用程序,我正在使用jQuery验证。提交表单有几个按钮,每个按钮在后端都有不同的选项。

我有一个自定义validateForm()功能,我可以分配给所有按钮的OnClientClick事件,但我希望有一个更优雅的解决方案,我不必专门给每个按钮按下OnClientClick属性。

基本上,是否可以在提交asp按钮之前捕获$(form).submit()事件?不使用OnClientClick属性?

解决了:我的问题实际上并不是因为我无法抓住提交,而是因为按钮是<a>链接而不是输入。我没有意识到这一点,并在家中试图从记忆中修复它。

以下任何解决方案都应该在上面的场景中使用实际的提交按钮

2 个答案:

答案 0 :(得分:1)

只需将监听器附加到submit事件:

$('form').on('submit', function (event) {
    // Do whatever you need to do here ...
    // You could also do `event.preventDefault();`,
    // if you wanted to stop the submit.
});

答案 1 :(得分:-1)

您可以使用onsubmit事件,当从任何按钮提交表单时,该事件将执行JavaScript。

<form id="form1" runat="server" onsubmit="return ValidationFunction();">

你的JS函数应该返回truefalse作为

function ValidationFunction() {
    // Your jQuery validation
    if (isValide) {
        return true;
    }
    else {
        return false;
    }
}

使用JQuery附加事件处理程序以形成提交的另一个选项

$(document).ready(function () { // << to make sure DOM is loaded
    $('#form1').on('submit', function (e) {

        e.preventDefault(); // << the default action of the event will not be triggered
        var isValide = false;

        if (isValide) {
            alert('ok');
            this.submit();
        }
        else {
            alert('Not Valid');
        }
    });
});