uview 弹出框放表单 验证失效_MVC client validation after PartialView loaded via Ajax MVC3中 弹出 Dialog时候 提交的时候 使...

在MVC应用中,使用Ajax加载的PartialView中的表单遇到验证失效问题。当表单通过Ajax加载到页面后,jQuery的无侵入验证框架无法识别动态添加的标记,导致验证不生效。解决方案是在PartialView中添加代码,调用jQuery.validator.unobtrusive.parse()重新解析DOM,以确保验证规则被正确应用。在父页面中,可以通过检查表单是否有效来处理提交事件。
摘要由CSDN通过智能技术生成

I came across this scenario whereby my main View uses Ajax posts to retrieve PartialViews and delivers the markup of the PartialView into my View. I use the jQuery validation framework to implement client side unobstrusive validation.

When I tried to validate my form that had been loaded into the page via an Ajax call, the validation did not appear to be working, my form simply posted. As it turns out, the unobstrusive jQuery validator library parses the markup of a page after it has finished loading for all the validation rules on the page. The result is, jQuery doesn’t know that the dynamically added markup has any validation rules resulting in no validation errors being thrown on post.

Solution

Luckily there is a method that is publicly accessible in the unobstrusive jQuery library which you can call, which will force the parser to scan the markup you just loaded. To do this you need to add the following code to the PartialView (or other dynamically loaded content)

//this code goes in your partialview

$(function(){

//allow the validation framework to re-prase the DOM

jQuery.validator.unobtrusive.parse();

});

Then in your parent page you can handle the form submission and check the form is valid like this;

//then in your parent page handle the form submission

$(function(){

$("#SubmitButton").click(function(){

if (!$("#Form1").valid()){

return false;

}

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值