在动态表单上添加规则

时间:2013-05-11 15:23:39

标签: forms jquery jquery-validate dynamicform

我正在尝试在动态填充的表单上添加验证规则,具体取决于来自后端的JSON响应。我正在使用jQuery 1.9.1和jQuery Validation插件。

function getItems(Id) {
    $.ajax({
            url: ...
            success: function (items) {
                buildForm(items);
            }
            error: ...
}

function buildForm(items) {
    $form = $('#testForm');
    $form.empty();
    $.each(items, function(i, item) {

        $form.append('<input type="text"' +
        'id="' + item.Id + '"' +
        'name="' + item.Name + '"' +
        'value="' + item.Default + '"' +
        ' />');
        $form.append('<br />');

        $('#' + item.Id).rules("add", { required:true,email:true }) // error!
    });
}

jQuery(function ( $ ) {
    getItems(1 //just an Id);
});
  

错误:未捕获的TypeError:无法读取未定义的属性“设置”

我是JavaScript的新手肯定这不是最聪明的方法。 HTML没有报告,它只是一个空表格。 我认为DOM还没有为规则选择做好准备,但我真的不知道 如何处理这个,'因为我必须使用成功回调,我不在DOM准备功能。 欢迎任何建议!

2 个答案:

答案 0 :(得分:4)

.validate()在哪里?

在使用rules("add")初始化插件之后的某个时间,您无法调用插件方法.validate()

答案 1 :(得分:0)

我认为错误是从验证器插件中引出的,

var settings = $.data(element.form, "validator").settings;

可能是'id'未正确引用。