本文介绍了用动态的形式ASP.Net MVC 3客户端验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图做手工验证这样我就可以通过AJAX发布我的形式。

另外,我动态加载我使用的形式 $(#formHolder),负载(URL);

当我加载页面到DIV它总是验证为真,即使我的输入框为空。

即调用如果($(#MyForm的)。有效的())//总是真

不过如果我去的页面URL直接它工作正常。

所以,我怎么能初始化形式通过 .load加载它(URL),之后正确; ,因为第一次打开时它不会在页面上存在

我的JavaScript

  $('。myLink的')。点击(函数(){
    VAR URL ='/通讯/信息/'; //这个我加载HTML表单在运行时从另一页/视图
    $(#formHolder)。负载(URL,函数(){
            $(#的MyForm)验证()。 //我觉得一旦加载这条线将它初始化
           })。对话({
        模式:真实,
        宽度:800,
        身高:600
    });
    返回false;
});


解决方案

调用 $。validator.unobtrusive.parse()后手动形式已加载的作品

我发现这里的解决方案http://btburnett.com/2011/01/mvc-3-unobtrusive-ajax-improvements.html

I am trying to do manual validation so I can post my form via AJAX.

ALSO I am loading my form dynamically using $("#formHolder").load(url);

When I load the page into the DIV it always validates as true, even though my input box is empty.

i.e call if($("#MyForm").valid()) //is always true

However If I go to the page URL directly it works ok.

So how can I initialise the Form correctly after loading it via .load(url); since it does not exist on the page when first opened

My Javascript is

$('.myLink').click(function () {
    var url = '/newsletter/info/'; // this loads my HTML form from another page/view at runtime
    $("#formHolder").load(url, function () {
            $("#MyForm").validate(); // I thought this line would initialise it once it loads
           }).dialog({
        modal: true,
        width:800,
        height: 600
    });
    return false;
});
解决方案

Calling $.validator.unobtrusive.parse() manually after the form has been loaded works

I found the solution here http://btburnett.com/2011/01/mvc-3-unobtrusive-ajax-improvements.html

这篇关于用动态的形式ASP.Net MVC 3客户端验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 05:32