Asp.net mvc 如何使用javascript提交ASP.NET MVC表单并在客户端进行验证?

Asp.net mvc 如何使用javascript提交ASP.NET MVC表单并在客户端进行验证?,asp.net-mvc,asp.net-mvc-2,validation,jquery-validate,form-submit,Asp.net Mvc,Asp.net Mvc 2,Validation,Jquery Validate,Form Submit,我有一个ASP.NETMVC2表单,它工作得非常好,可以进行客户端验证(使用数据注释)。每当用户单击submit按钮时,客户端验证就会在表单实际发布回服务器之前启动 这是实际的代码,非常基本的东西: <% Html.EnableClientValidation(); %> <% using (Html.BeginForm()) { %> <%= Html.ValidationSummary(true) %> <%: Html.Editor

我有一个ASP.NETMVC2表单,它工作得非常好,可以进行客户端验证(使用数据注释)。每当用户单击submit按钮时,客户端验证就会在表单实际发布回服务器之前启动

这是实际的代码,非常基本的东西:

<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) { %>
    <%= Html.ValidationSummary(true) %>
    <%: Html.EditorForModel() %>
    <p>
        <input type="submit" value="Save" />
    </p>
<% } %>


现在我的问题是:我想使用一个按钮提交表单,该按钮不在
中,就像上面示例中的按钮一样。此按钮需要放置在页面上一个单独的
中,该页面的工作方式类似于我的应用程序中所有按钮和操作的工具栏

我可以使用如下方式提交表单(使用jQuery):


唯一的问题是,这不会触发客户端验证,就好像用户正在单击正常的提交按钮一样。整个表单被发回,服务器端验证被执行,视图再次呈现,显示验证错误

我不想把这个常规的提交按钮和表单放在一起,只需要在工具栏上放一个按钮,那么有没有办法做到这一点呢?使用一个单独的按钮调用表单的提交,同时仍然触发表单的客户端验证?

尝试以下方法:

<input type="submit" value="Save" onclick="$('#dummy').click();" />

其中
dummy
是表单中隐藏的
submit
按钮


另外,
保存
按钮不需要是
提交
按钮,如果它没有放在
表单中

,您可以尝试jQuery的Ajax表单插件


您也可以通过
$('#form')附加到表单的提交事件。提交(function(){})

验证方法附加到表单的提交事件,这意味着您应该能够从javascript调用form.submit(),提交事件仍然会触发。

尝试
$(“#yourform”)。验证(“提交”)如果您使用MicrosoftMvcValidation.js

或者
$(“#yourform”).validate()
如果您使用jquery.validate.js

Man。。。你跑得真快!!!…:)您的解决方案确实有效,尽管它看起来有点像您所说的。如果没有其他人想出更好的办法,我就这样离开,接受你的回答:)谢谢你!显然,MVC客户端验证例程并不完全正确。我刚刚测试了您的解决方案,虽然它确实适用于提交表单,但在发送表单之前,验证不会在客户端进行。整个表单在没有验证的情况下发布,然后在服务器上验证模型,控制器再次返回带有错误消息的视图。
<input type="submit" value="Save" onclick="$('#dummy').click();" />