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