提交后有效,后面没有调用代码

时间:2013-11-27 16:03:32

标签: jquery asp.net-mvc jquery-validate

我需要在致电另一个表格之前提交表格。

我有这个:

$('#Add_New').unbind("click").on("click", function (evt) {
        $("#frmNew").validate();

        if ($("#frmNew").valid()) {
            $("#frmNew").submit();
            var urlNew = $('#pollUrl').data('url-new-question');
            location.href = urlNew;
        }
    });

我的表格:

@using (Html.BeginForm("PollNew", "Poll", FormMethod.Get, new { id = "frmNew" })) 

但它没有调用提交的C#代码。 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我不确定你在这里要做什么......

$('#Add_New').unbind("click").on("click", function (evt) {
    $("#frmNew").validate();

    if ($("#frmNew").valid()) {
        $("#frmNew").submit();
        var urlNew = $('#pollUrl').data('url-new-question');
        location.href = urlNew;
    }
});

但是,我可以告诉你.validate()是插件的初始化方法,并且不会在click()事件处理程序内调用。它通常在DOM Ready事件处理程序中被称为一次,以初始化表单上的验证插件以及您定义的规则&选项。

其次,您需要以编程方式检查表单是否有效并手动调用.submit()。这就是submitHandler回调函数的用途...它仅在表单有效时调用,并在此时自动提交表单。

submitHandler: function(form) {
    // stuff to do when the form is valid.
    // you can use ajax to submit the data here
    // then do something else
}

最后,我不知道您将如何执行.submit()然后再执行location.href ...表单的正常提交操作将重定向到新的之前的页面 location.href可以执行任何操作。