2

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

4

3 回答 3

3

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

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

具体来说,我通过 AJAX 在模式弹出窗口中加载表单。这是完整的代码,其中还包括一个关闭弹出窗口的函数:

$('<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()
    }
});
于 2013-07-25T17:55:10.180 回答
0

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

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

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

$('#somewhere').load('someurl', function() {
  // Instantiate validation-engine
  $("#id-of-dynamically-loaded-form").validationEngine();
});
于 2012-11-22T08:42:00.937 回答
0

我遇到了同样的问题,我刚刚通过获取请求获得了整个表单,而 jquery 验证引擎根本无法正常工作。我进行了很多搜索,最后我发现如果我们在单击按钮时验证表单,那么我们应该首先断开然后附加验证引擎,因为表单附带了多个事件,因此建议断开连接。例如,我得到了带有id="Table1“的表格,save button点击时我会这样做

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

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

于 2014-02-12T07:34:08.300 回答