我有一個提交按鈕的表單,並通過onclick = ...附加了一個驗證器。當我點擊submit按鈕時,驗證器被執行並且返回false。但是,表單已提交。怎麼會這樣?我的Onclick處理函數返回false,但我的表單仍然提交
要進一步縮小的問題,我甚至暫時改變代碼:
<form id="contactform" method="post" action="cgi-bin/process_contact_form.rb">
....
<input type="submit" value="Abschicken" onclick="false && k_validate('de')" />
</form>
這只是返回false並繞過我的驗證。事實上,即使在這個版本中,表單也會被提交。
請注意,我知道有手段獲取提交繞過驗證程序的表單。我在這裏只對「正常」情況感興趣,即當用戶明確地點擊按鈕時。
我已經測試了這個在Mac OSX 10.6.8,使用以下瀏覽器:
設備SeaMonkey 2.0.14 Safari瀏覽器5.1.10 鉻36.0
,當然是,啓用JavaScript。
上述「假」快捷方式的測試頁可以在這裏看到:
http://www.tsukaeru-doitsugo.de/testing.html
它有兩個按鈕。第一個按鈕(標記爲「Abschicken」)是表單中的一個。它的onclick處理函數返回false,但表單仍然被提交。
這將與OR(或假|| X總是返回X)真。使用AND時,如果LHS已經是假的,則不評估RHS(因爲假&&X總是假的,與X的值無關)。 – user1934428 2014-09-10 10:28:41
其實,我也可以寫onclick =「false」。以這種方式進行編輯更容易,因爲最終,我計劃刪除'false &&'並讓我的驗證器運行。 – user1934428 2014-09-10 10:30:11