因為每一個表單的檢測項都不同,所以我也不能給你一個萬能的代碼。你需要用我在這一章介紹的這些元素構建自己的檢測函數。我在后面一張還有一個例子,你也可以參考。
在這一章我會首先討論一下用JavaScript來檢測表單的局限性,然后會解釋一下提交時間處理程序,然后是表單本身的一些方法和屬性。最后就是如何訪問表單元素。
這里還有一篇Jeff Howden的介紹表單的使用錯誤和解決辦法。Forms & JavaScript Living Together in Harmony
局限性
首先,你需要了解當用戶提交了表單之后JavaScript的檢測代碼會做什么:
1、JavaScript檢測表單時可能會像下面這樣。如果代碼發現了一個錯誤,那么提交就會暫停,然后給用戶一個警告讓他輸入正確的數據。
2、如果沒有什么錯誤或者JavaScript是關閉的那么表單內容就發送到服務器端。
3、如果服務器端的腳本發現了錯誤,就會返回一些錯誤信息。在這種情形下,用戶需要返回表單然后重新填寫數據再次提交。
4、如果沒有錯誤發生,那么服務器端完成必要的工作并顯示感謝信息。
就像你所看到的,數據在提交過程中會檢測兩次:一次是JavaScript一次是服務端。服務端檢測總是可行的,而且是可靠的。JavaScript的檢測只有在用戶開啟JavaScript功能的時候才有用,那么既然服務端總是可靠有效,并且與用戶使用的瀏覽器無關,那么為什么還需要JavaScript檢測呢?
JavaScript檢測是服務器端檢測的一個有效補充,因為他能在數據發往服務器端的時候先檢測一遍。這樣用戶就不用使用后退按鈕回去修改表單內容,那樣會很麻煩,而且在尋找填錯的內容也是一件相當麻煩的事情。所以JavaScript檢測比服務器端檢測對用戶的使用體驗幫助更大。
所以JavaScript不是一個完全的檢測機制,但是作為服務器端的補充和對用戶的友好性來講還是一個不錯選擇。所以我建議使用這兩種檢測機制,既滿足了用戶的使用體驗要求又保證了程序的安全性。
onsubmit
當你使用JavaScript來檢測表單的時候,第一個事情就是創建onsubmit的事件處理程序。這個程序會在用戶提交表單的時候運行。這個程序會檢測某些字段是否有值填寫,那些復選框是否選擇了至少一個,或者其他的你需要檢測內容。
代碼如下:
代碼如下:
<form action="something.pl" onsubmit="return checkscript()">
checkscript()就是這個程序的名字。這段代碼需要返回true或者false。如果返回的是false,那么表單就不會被提交,不論返回true還是false代碼都會停止運行。
所以生成的代碼如下:
代碼如下:
function checkscript() {
if (some value is/is not something) {
// something is wrong
新聞熱點
疑難解答
圖片精選