JS表單驗證討論
無論在提交按鈕,即<input type="submit" onclick="return 函數(shù)名()">,
或者在form表單上,即<form onsubmite-"return 函數(shù)名()">
都能夠,驗證表單,然后提交
需要注意的事項有
1.
<form>中的name屬性,最好制定一下,
否則無法使用document.ID號定制,
但是可以使用document.getElementById(string id)獲取對象,
建議同時設置id與name為相同的名稱
2.
調(diào)用的時候,建議使用return 函數(shù)名()這樣的方法,否則可能無效
?P.S. 我使用了像<input type="submit" onclick="return false">
結果證實函數(shù)得到了運行,但是攔截表單提交失敗
3.
驗證函數(shù)中,建議明確返回bool值
4.
設置的函數(shù)名不要和JS的內(nèi)置函數(shù)重名,否則會導致整個函數(shù)失效
P.S. 我就犯了這個錯誤,我定義了一個submit()函數(shù)
5. *****
即使設置了<form onsubmit="return false;">,或者等價的表達式
但是如果調(diào)用form.submit()函數(shù),表單仍然會得到提交
換句話說,form.submit()具有強制提交表單的功能
6.
如果在JS中更改了form.action的值,則提交目標以JS設置的為標準
因為JS的設置永遠發(fā)生在HTML設置之后 即使是使用
<form onsubmit="this.action='test.html'" action="orin.html">
這樣的表示法
7.實驗發(fā)現(xiàn)無論是form的onsubmit還是submit按鈕的onclick
都不能丟掉"return",否則無論返回的值ture or false,表單數(shù)據(jù)都會提交出去