2011-12-26 185 views
5

我有這樣一個提交按鈕:驗證提交按鈕

<input class="create_button" name="commit" 
     onclick="return validate_activity();" 
     type="submit" value="Save"> 

我發現,這個按鈕會一直髮出請求,無論validate_activity()返回true或false服務器?

這裏有什麼問題?

UPDATE

其實,我在validate_activity(),這讓我覺得它返回false犯了一個錯誤,但它不是。

+1

你能後你有'validate_activity()'什麼? – 2011-12-26 18:13:47

+0

對,我在我的validate_activity()中犯了一個錯誤。 – Rocky 2012-01-02 13:43:51

回答

10

嘗試做同樣的事情而不返回,例如onclick="validate_activity();"並檢查您的功能無效的情況下返回false

+1

這也可以提交

+0

這不會阻止任何人提交表單,例如通過在同一表單中的輸入字段上按Enter鍵。 – cyanbeam 2017-09-10 15:20:39

1

點擊時,您應該使用submit事件的形式進行驗證的..

<form action="..." method="..." onsubmit="return validate_activity()"> 
    <...> 
    <input class="create_button" name="commit" type="submit" value="Save" /> 
    <...> 
</form> 
2

我想這個問題是onclick="return validate_activity();",這個return語句被執行提交按鈕(不返回false)。 正確的方法是onclick="validate_activity();"並在validata_activity函數中返回false,這將停止默認提交操作。

3
<input type="button" name="commit" 
value="Save" 
onclick="validate_activity(myform)" /> 

在Javascript中,經過驗證,執行form.submit()或返回false。

我希望這有助於!這將驗證您的表單並提交。如果您的瀏覽器禁用Javascript,此提交將失敗。

如果你想提交即使JavaScript是在客戶端瀏覽器中禁用進行

(意味着沒有驗證,但將提交),然後

<input type="button" name="commit" 
value="Save" 
onclick="validate_activity(myform);return false;" /> 

我希望沒有驗證不應該打你的。但是,然後javascript只是客戶端,我希望你會在服務器端進行嚴肅的理智檢查,無論如何,我認爲人們使用它進行非常基本的現場檢查。

2

如果您正在進行表單驗證,然後在按鈕的onclick事件上進行驗證,您嘗試的方式沒有任何意義,您應該在<form></form>onsumbmit這樣的事件中使用它。

<form action="someURL" method="post" onsubmit="return validate_activity();"> 

</form> 
2

嘗試......

<form action="...." onsubmit="submitForm()" name="form"> 

<input type="submit" value="Save"> 

</form> 


function submitForm(){ 

    if(validationfails){ 

     return false; 
    } 
    else { 
     document.form.submit(); 
     return true; 
    } 
}