2015-09-20 134 views
0

我有两种表单我想要验证。出于某种原因,我只能验证一种形式。注意:在我的网页中,我使用php来包含我的头文件(JS验证脚本所在的地方)。我的问题是,使用以下格式验证多个表单的正确格式是什么?验证Javascript中的多个表单

<script type="text/javascript"> 

window.onload=function() { 
    document.Form1.onsubmit=function() { 
     ... 
     field validating 
     ... 
    } 
} 

我已经试过这一点,但只有一个会在工作时间(在这种情况下Form1上,因为它是第一个):

<script type="text/javascript"> 

window.onload=function() { 
    document.Form1.onsubmit=function() { 
     ... 
     field validating 
     ... 
    } 

    document.Form2.onsubmit=function() { 
     ... 
     field validating 
     ... 
    } 
} 

谢谢!

编辑:这是一个任务,所以它不需要是完美可言:对

编辑2: HTML表单:

Table1.php 
... 
<form name="Form1" id="Form1" method="post" onSubmit="return(validate())"> 
... 
Table2.php 
... 
<form name="Form2" id="Form2" method="post" onSubmit="return(validate())"> 
... 

显然它是的onsubmit导致问题的部分?

+0

PS:与所述服务器验证为好。 –

+0

你可以分享表格的HTNL吗? – takinola

+0

你可以分享表格的HTNL吗? – takinola

回答

1

您可以使用onsubmit设置两个处理程序,通过这个作为参数来引用提交表单

function validate(ele) { 
 
    var valid = true; 
 

 
    // validate fields 
 
    ele.text.style.borderColor = ele.text.value == '' ? 'red' : 'green' 
 

 
    return valid; 
 
}
<form id="form1" onsubmit="return validate(this);"> 
 
    <input name="text"> 
 
    <input type="submit" value="submit" />... ... 
 
</form> 
 
<form id="form1" onsubmit="return validate(this);"> 
 

 
    <input name="text"> 
 
    <input type="submit" value="submit" />... ... 
 
</form>

,或者您需要使用document.forms[index]与指数

得到

console.log(document.forms) 
 

 
window.onload = function() { 
 
    document.forms[0].onsubmit = function() { 
 
    alert(1); 
 
    // do validation here 
 
    } 
 

 
    document.forms[1].onsubmit = function() { 
 
    alert(2); 
 
    // do validation here 
 
    } 
 
}
<form id="form1" onsubmit="return validate(this);"> 
 
    <input name="text"> 
 
    <input type="submit" value="submit" />... ... 
 
</form> 
 
<form id="form2" onsubmit="return validate(this);"> 
 

 
    <input name="text"> 
 
    <input type="submit" value="submit" />... ... 
 
</form>

+0

感谢您的帮助,我确实会为每个表单提示'1'。有没有一种方法可以使用表单的名称来识别哪个是哪个?顺便说一下,这些表单在单独的页面上。 – P3rry

+0

@PetShopBoys您可以用'this.id'这将促使ID –

+0

对不起,我的意思是Form1上提示“1”,并形成2个提示“1”也,“2”来代替。 – P3rry

0

你指向根document未定义的属性。尝试使用document.forms集合:

document.forms['formID'].onsubmit