【问题标题】:Can I validate dynamically created forms using jquery validation engine?我可以使用 jquery 验证引擎验证动态创建的表单吗?
【发布时间】:2012-11-04 12:57:23
【问题描述】:

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

【问题讨论】:

  • 能否展示验证表单的js代码和表单html代码

标签: jquery ajax jquery-validation-engine


【解决方案1】:

我有同样的问题。验证引擎不适用于通过 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()
    }
});

【讨论】:

    【解决方案2】:

    我同意@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();
    });
    

    【讨论】:

      【解决方案3】:

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

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

      在执行$("#Table1").validationEngine('validate');这一行之后,它会给你一个布尔值true or false的返回值,你可以在表单上save or show errors

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-27
        相关资源
        最近更新 更多