2013-02-21 201 views
0

我有一個asp按鈕,它是在服務器端創建的,我已經設置了它的OnClientClick事件來激發一個Javascript函數。 它使用正確的onClick事件在頁面上呈現包含對JavaScript函數的調用,並且當我單擊該按鈕時,它的所有工作都應該如此。按住ASP按鈕並按回車按鈕不會觸發onClick

當我按下按鈕並按下回車鍵時,就會出現問題。它提交表單,但它不會觸發onclick事件,所以我的Javascript沒有被調用。

我試着將一個onKeyPress和onKeyDown賦給這個按鈕,但那不行。 這一定很簡單,我錯過了,但我只是在這裏畫一個空白。

任何幫助感激地接受,謝謝。

這是該按鈕生成的HTML:您正在使用一個提交按鈕

<input type="submit" name="SaveButtonTop" value="Save" 
onclick="javascript:return ClickSubmitBtn();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;SaveButtonTop&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="SaveButtonTop" /> 
+0

旁白:因爲JavaScript是可以在一個onclick事件,你應該離開了「的javascript:」跑的唯一部分。 – 2013-02-21 18:04:34

+0

這很有道理,好點! – 2013-02-21 18:07:31

回答

0

,因此它會提交。您必須取消正在調用的功能中按鈕事件的默認操作,或使用常規按鈕,而不是提交。

參見:http://css-tricks.com/return-false-and-prevent-default/

+1

感謝您的迴應 - 我已經設法讓它產生一個正常的按鈕,但即使有onclientclick,onkeypress和onclick事件,沒有longet發佈回來,它的行爲是一樣的。 如果我用鼠標單擊按鈕,onclick事件會調用我的javascript,它會觸發我的調試器並正確執行所有操作。但是,如果我在按鈕上按下並按下回車鍵,它只是回傳頁面而不做任何客戶端。我總是覺得輸入鍵引發了一個正常的點擊事件,但我明顯錯了。關於這個的任何其他想法? 謝謝 – 2013-03-04 13:50:01

+0

一招是防止enter = submit有一個隱藏的額外的文本字段,什麼也不做。 – 2013-03-04 14:51:01