2015-09-20 137 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