0

有人建议最好$('#form').validate({})在页面加载而不是单击事件时初始化函数:jquery.form/validate 插件仅允许在输入更改时提交

我想知道如何在不将函数包装在$('#form').validate({})函数内部的情况下为多个动态添加的表单执行此操作on('click', 'input[type="submit"]',

以这段代码为例:

var id="some identifier for the specific form that is submitted";
`$('#form'+id).validate({})`
  1. 这个唯一标识符id是如何首先创建来区分每个表单的?
  2. 如果您不知道id页面加载后的时间,因为它是动态创建的,例如通过 AJAX。

我一直在这样做,但这是推荐的:

$(document.body).on('click', 'input[type="submit"]', function(){
  var id=this.id;
  $('#form'+id).validate({});
});

想法?

谢谢,蒂姆

4

1 回答 1

4

如果页面加载时表单根本不存在,那么.validate()我不会在提交时初始化,而是在创建表单后立即初始化它......

// code that dynamically creates #myNewform, then initialize validate()

$('#myNewform').validate();

(validate()不应该在提交处理程序中,因为直到单击提交按钮后才初始化验证。这会导致表单验证失败并且必须第二次提交时出现问题。第二次提交然后重新初始化插件形成第二次。有关类似问题,请参见 此处此处此处。)

对于现有form的页面...

$(document).ready(function(){
    $('#myform').validate();
});

或多个form共享相同的验证选项...

$(document).ready(function(){
    ('.myform').each(function(){
        $(this).validate();
    });
});
于 2012-06-11T20:25:33.530 回答