我可以使用jquery验证引擎验证动态创建的表单吗?

时间:2012-11-04 12:57:23

标签: jquery ajax jquery-validation-engine

问题是我要验证的表单位于通过AJAX加载的页面上。我已经尝试在加载页面后调用validationengine,但它似乎不起作用。是否可以使用此插件来验证此类表单?

3 个答案:

答案 0 :(得分:3)

我有同样的问题。验证引擎不适用于通过AJAX加载的表单。对我有用的是首先从所有表单中分离验证引擎然后重新附加:

$('form').validationEngine('detach');
$('#yourform').validationEngine();

具体来说,我是通过AJAX在模态弹出窗口中加载表单。这是完整的代码,其中还包含一个用于销毁弹出窗口的close函数:

$('<div>Loading...</div>')
.load(url, function() {
    $('form').validationEngine('detach');
    $('#yourform').validationEngine(); 
})
.dialog({
    modal: true,
    height:400,
    width:400,
    resizable: false,
    draggable: false,
    close: function(event, ui) {
        $(this).dialog('destroy').remove()
    }
});

答案 1 :(得分:0)

我同意@Stefan P.一些代码示例会有所帮助。但是,从documentation开始,您可以简单地将以下内容添加到您的AJAX成功处理程序中:

$("#id-of-dynamically-loaded-form").validationEngine();

例如,如果您使用$.load来执行AJAX请求,则可能如下所示:

$('#somewhere').load('someurl', function() {
  // Instantiate validation-engine
  $("#id-of-dynamically-loaded-form").validationEngine();
});

答案 2 :(得分:0)

我遇到同样的问题我只是通过获取请求得到了我的整个表单并且jquery验证引擎根本没有工作。我搜索了很多,最后我发现,如果我们在点击按钮验证表单,那么我们应该首先deatach然后附加验证引擎,因为表单附带了多个事件,因此建议使用deatach。 例如,我获得了id="Table1“的表单,并在save button点击我会这样做

$("#Table1").validationEngine('detach');
$("#Table1").validationEngine('attach');
$("#Table1").validationEngine('validate');

执行$("#Table1").validationEngine('validate');此行后,它会在表单上为true or false返回值提供一个布尔值save or show errors