2010-11-21 22 views
1

現在我有一個基本的購物車設置。當用戶輸入他們的信息時,我想將這些數據寫入XML文件。爲此,我一直使用提交表單的POST方法。但是,如果符合條件(例如使用正則表達式確保電話號碼中沒有字母),我只想提交此表單以進行保存。只有符合條件時才提交表格?

所以我的形式是這樣的:

<form action= "confirmation.php" name="memberData" method="post"> 
     <input name="textField" id="textField"></input> 
     <input type="submit" name="submitbutton" id="submitbutton" onclick="submitIt()" value="Submit Button"/> 
    </form> 

所以,我要的是打電話來檢查,如果數據是有效的這種submitIt()函數。如果它是有效的,那麼我想執行我的表單操作。否則,我希望它不會重定向,直到用戶修復他們輸入的信息。現在它可以正確地提醒用戶不正確的字段,但是在它重定向並保存信息之後立即進行。

如果符合某些條件,是否有辦法執行表單操作?

+0

看看錶單驗證。在發佈之前驗證文本框... http://www.javascript-coder.com/html-form/javascript-form-validation.phtml – 2010-11-21 21:21:15

回答

5

你想在這裏做什麼是防止事件的默認行爲,在你的情況下提交表單。要做到這一點,處理程序應該返回false。爲了使其工作,您必須將處理程序從onClick提交按鈕更改爲窗體的onSubmit。

您還可以在這裏閱讀一些有關事件http://www.quirksmode.org/js/introevents.html

2

您需要通過取消正在處理的事件來停止處理表單。見this example

請注意,如果JavaScript被禁用,這顯然不會運行,所以您仍然需要執行這些服務器端檢查,並在服務器端正確處理驗證錯誤。

+0

因此,爲了這個工作,我應該在我的submitIt()中調用cancelEvent() )功能? – user494216 2010-11-21 21:24:59

1

此外,請查看許多JQuery插件。

http://plugins.jquery.com/plugin-tags/form-validation

越來越近幾個簡單的例子,並得到妥善包含在頁面的一切之後,表單驗證成爲跨所有的網站很容易和靈活。

此外,我真的看到客戶端驗證需要用戶不離開頁面,但不要忘記,當提交表單時,您仍然必須清理並檢查表單域。惡意用戶可以簡單地禁用JavaScript以獲得過去的驗證,或者用NoScript運行的用戶甚至不會意識到發生了驗證。

4

你可以做這樣的事情:

<form ... onsubmit="return submitIt();"> 

submitIt()是一個JavaScript函數返回true,如果有效,若無效假的。

相關問題