使用jQuery.validate动态地通过Javascript生成的表单上输出错误消息

时间:2016-03-14 21:55:34

标签: jquery jquery-validate

当通过Javascript动态生成表单时,似乎验证函数不起作用。验证似乎有效,但错误消息未显示。这是否有原因,是否有任何解决方法?

我正在使用这个,并且我意识到当代码通过javascript生成时,此代码在表单硬编码时有效,并且无效。

   $('#some-form').validate({
        rules: {
            'feature1': {
                min: 1,
                required: true
            },
            'feature2': {
                min: 1
            },
        },
        messages: {
            'feature1': {
                min: "error1",
                required: "error2"
            },
            'feature2': {
                min: "error3"
            },
        }
});

可能存在一些语法错误,因为我没有粘贴代码。

1 个答案:

答案 0 :(得分:0)

  

当表单通过JavaScript动态生成时,验证函数似乎不起作用。

如果您在创建表单后致电.validate() ,它的效果非常好。

您无法将.validate()方法附加到DOM中尚不存在的表单...非常标准的内容。

  

验证似乎有效,但错误信息不会显示。

不可能。如果您没有看到错误消息,则验证插件无效。

  

这是否有原因,是否有解决方法?

如上所述。动态生成form后,您只能在 创建表单后立即将.validate()附加到

// code that dynamically creates '#some-form' goes here

    $('#content').html('<form id="some-form">...</form>');

// then initialize the plugin on '#some-form' here

    $('#some-form').validate({ // initialize plugin
        ....

DEMO:http://jsfiddle.net/ptj9gptr/

修改

对于在调用.validate() 后动态创建的字段(与插件初始化后相同),使用the .rules() method动态添加和删除规则。