以下問題:JavaScript使用Firefox更改默認按鈕概率
我有一個按鈕列表,然後用一個按鈕添加一個新條目的文本框。 在這兩者中,列表按鈕和添加按鈕都是用於確認動作的JavaScript例程。
現在我遇到了這樣的問題,即當用戶按下輸入文本框中的第一個按鈕,如果列表將被調用,而不是添加按鈕。 所以我在按鈕的「onkeydown」事件中添加了JavaScript,其中我使用「return false;」以避免在檢查返回按鈕被按下後第一個按鈕將被調用。 這適用於以下行: onkeydown =「if(event.which == 13){return false;}」 但是,只要在「return false;」之前添加任何JavaScript代碼, (我需要一個確認消息和其他一些JavaScript例程),firefox瀏覽器會調用onkeydown事件中的第一個按鈕AND javascript代碼... 在Internet Explorer上似乎沒有發生此行爲。
我已經嘗試了幾個小時找到解決方案,但我找不到一個,我也無法在互聯網上找到正確的提示。 因此,如果有人能夠幫助我解決這個問題,我會很高興。
我試圖建立一個代碼示例,其中每個人都可以重現錯誤的行爲。 在上次輸入控件中,我添加了onkeydown事件。 有人可以告訴我爲什麼當Firefox按下文本輸入字段中的Enter按鈕時,Firefox爲什麼會顯示第一個按鈕的確認消息?
<html>
<head>
</head>
<body>
<form method="post" action="Test.html" id="ctl00">
<div id="divTest">
<table>
<tr>
<td>
Testline 1
</td>
<td>
<input type="submit" onclick="if (confirm('Sure?')) alert('the wrong postback'); else return false;" value="Test1" />
</td>
</tr>
<tr>
<td>
Testline 2
</td>
<td>
<input type="submit" onclick="if (confirm('Sure?')) alert('the wrong postback'); else return false;" value="Test2" />
</td>
</tr>
</table>
</div>
<table>
<tr>
<td>
Enter name:
</td>
<td>
<input type="text" size="30" onkeydown="if (event.which == 13) { alert('test'); return false; }" />
</td>
<td>
<input type="submit" title="Add it" onclick="alert('the correct postback')" />
</td>
</tr>
</table>
</form>
</body>
是的,我想提交表單,因爲我有一個右邊有刪除按鈕的「網格」,在那裏我需要一個「回傳」,因爲我使用的是ASP.Net,我想在那裏有事件引發。 – user2294634
另一個按鈕「添加」(在我的應用程序「添加電子郵件」)是在網格下(網格是在一個面板內),我有一條線添加一個新的條目到網格,並且我想要作爲默認的「添加」按鈕,可輸入新名稱的文本輸入字段。 但感謝與「type = button」的提示..也許這可以給我一些提示..但無論如何:我認爲我現在通過使用「onkeypress」事件,而不是「onkeydown」的解決方案..似乎更好地工作..不是所有的情況下,但更好:) – user2294634