2012-07-19 44 views

回答

2

如果您不使用return,則Javascript將調用validateForm,但會丟棄返回值。

如果onsubmit返回false表單將不會被提交。

+1

但是,也可以使用完全有效的事件處理函數來傳遞,具體取決於驗證函數的寫法。 – Norguard 2012-07-19 20:28:48

1

如果onsubmit函數返回false,則可以停止<form>的默認提交操作。

onsubmit屬性的值被視爲一個函數體,因此需要return,以便表單在無效時不會被提交。

+0

不完全是。返回false和返回另一個函數的返回值沒有區別,這恰好是錯誤的。 這更多的是代碼的inline eval()。 – Norguard 2012-07-19 20:16:41

+0

@Norguard:你想說什麼?我沒有關注。 – 2012-07-19 20:18:09

+1

對不起,我的大腦正在融化。 我打算說的是,如果驗證函數沒有寫成明確返回'false',並且還有其他方法來實現該值,則onclick函數的返回值仍然會提交表單。在這種情況下,您可以假設您正在查看別人代碼的「validate」函數的返回值爲100%,但對於剛剛編寫第一個函數的人來說,他們可能會發出警報,或者返回任何假的,而不是完全錯誤的。 – Norguard 2012-07-19 20:33:43

0

基本上,正在發生的事情是在線處理是這樣的:

<button id="submit-button" type="submit" onclick="return validate()"></button> 

var button = document.getElementById("submit-button"); 

button.onclick; // function() { return validate(); } 

對戰:

<button id="submit-button" type="submit" onclick="validate(event)"></button> 

var button = document.getElementById("submit-button"); 

button.onclick; // equals function (event) { validate(event); } 
相關問題