0

我有一个 id='form1' 的表单以及另一个带有 'form2' 的表单。在提交时,我想将两个表单作为对象传递给一个可以验证它们的验证函数。我对如何做到这一点感到困惑。如果我做类似的事情

var form = $('#form1');
Validate(form);

如何访问变量表单的文本字段?我不想编写重复的验证函数,因为这两种形式几乎相似。

4

4 回答 4

1

您也可以执行以下操作...

一个完整的例子在这里...

function validate(formid){
    var form = $("#"+formid);
    var name = form.find("#name");
    var number = form.find("#number");
    alert(name.val());
    alert(number.val());
}

    validate("form1");
    validate("form2");
于 2013-10-19T07:05:44.073 回答
0

假设两种形式相似:

ValidateForm($("#form1, #form2"));

function ValidateForm(forms){

   forms.each(function(){

      $(this).find('input[type=text]').each(function(){

        //Do something to validate text field


      })

      $(this).find('input[type=checkbox]').each(function(){

        //Do something to validate checkbox


      })

    })

 }
于 2013-10-19T07:08:01.833 回答
0

使用字段的名称,您可以执行以下操作:

function Validate(form) {
  form = form[0]; // raw element
  if (check_syntax(form.name.value)) { doSomething(); }
  if (check_syntax(form.email.value)) { doSomething(); }
  if (check_syntax(form.anotherfield.value)) { doSomething(); }
}

如果表单中的每个字段都有名称,您可以通过 form.fieldName 或 form['fieldName'] 访问它。

问候。

于 2013-10-19T07:02:36.587 回答
0

尝试.find。您的表单将用作上下文,您可以将其重用于不同的表单。

见下文:

var form = $('#form1');
function Validate(form){
    var field1 = form.find(".field1");
}
于 2013-10-19T06:56:23.080 回答