2011-06-30 24 views
0

我在按鈕的onclick事件上調用2個函數,第一個函數檢查表單驗證,第二個函數用於隱藏表單,當且僅當驗證爲true。但是這裏的問題是當我點擊按鈕時,這兩個函數都被同時調用,並且儘管驗證是錯誤的,表單很快就被隱藏了。任何解決這個問題都會有所幫助。感謝在onclick事件上觸發2個函數

 <p><input type="button" name="send" value="Hide Entries" onclick="validate(),hide();"></p> 
+0

這個問題與[tag:php]無關,而是[tag:javascript] - 相關。 –

回答

2

調用hide函數在validate功能

function validate() 
{ 
    //other validation code 
    hide(); 
} 
+0

謝謝Shakti Singh。 – work

1

兩者的功能都被同時呼叫

不,他們不是,JavaScript的瀏覽器上是單線程(禁止使用web workers)。他們被一個接一個地調用,因爲如果validate返回false,您沒有做任何事情來告訴解釋器不要運行hide函數。

最小的變化將是:

<p><input type="button" name="send" value="Hide Entries" onclick="if (validate()){hide();}"></p> 

...如果你想hide如果validate返回truthy值只能叫。


題外話(略):較大的變化將是JavaScript的邏輯遷出的HTML標記,併成爲一個合適的劇本。推薦閱讀unobtrusive JavaScript。但上述內容應與您當前的結構一致。