簡體   English   中英

在文本框中按Enter鍵不會觸發firefox中的提交按鈕的onclick事件

[英]Pressing enter inside a textbox does not fire onclick event of submit button in firefox

我有這個非常簡單的html頁面,它包含一個文本框和一個提交按鈕,我想要的是在文本框中鍵入內容並按下按鈕的onclick事件中的輸入函數被調用。 它在IE和谷歌Chrome中工作但不在FireFox中工作,這是FireFox的正常行為還是在這里缺少一些東西?

<html>
<head>
<script language="javascript">
function callMe()
{
   alert("You entered: " + document.getElementById("txt").value);
}
</script>
</head>
<body>
<input type="text" id="txt" />
<input type="submit" value="Submit" onclick="callMe()" />
</body>
</html>

onclick事件描述

單擊指向設備按鈕時會發生onclick事件。 此屬性可用於大多數元素。

即使使用指點設備並點擊某些內容,也無法保證UA應該生成此類事件。

您可能希望在表單上使用onsubmit事件:

提交表單時會發生onsubmit事件。 它僅適用於FORM元素。

但是,您需要在文本字段和按鈕周圍包裝表單:

<html>
  <head>
    <script language="javascript">
      function callMe()
      {
        alert("You entered: " + document.getElementById("txt").value);
      }
    </script>
  </head>
  <body>
    <form onsubmit="callMe()" action="#">
      <input type="text" id="txt" />
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

嘗試添加帶有onsubmit的表單 - 這應該可行(使用FF 3.5測試):

<html>
<head>
<script language="javascript">
function callMe()
{
   alert("You entered: " + document.getElementById("txt").value);
}
</script>
</head>
<body>
<form onsubmit="callMe()">
<input type="text" id="txt" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

[編輯最初我誤解了這種情況並發布了不同的答案。]

在我的Chrome中也不起作用(4.0.223.11)。

問題是在沒有<form>的情況下處理<input>的區別 - 如果你添加一個封閉的<form>元素,onclick元素會觸發(你應該仍然使用表單的提交處理程序,正如JohannesRössel正確推薦的那樣)。

[編輯添加了關於HTML5的說明]

請注意, HTML5規范提到在提交按鈕上調度click事件

用戶代理可以在每個表單中建立一個按鈕作為表單的默認按鈕。 這應該是樹形順序中的第一個提交按鈕,其表單所有者是該表單元素,但如果另一個按鈕更適合該平台,則用戶代理可以選擇另一個按鈕。 如果平台支持讓用戶隱式提交表單(例如,在某些平台上按下“enter”鍵,而文本字段被聚焦時隱式提交表單),那么這樣做必須導致表單的默認按鈕的激活行為,如果有的話,要運行。

請注意,不需要實現基於Enter的激活(盡管它是在桌面瀏覽器中實現的),並且當輸入是表單的一部分時,可以使用“激活方法”(click事件)(“具有表單所有者” )。 “表單所有者”的定義基於具有<form>父級或form屬性。

我沒有看到導致這個決定的討論,所以如果你有問題,你可以在public-html郵件列表上詢問討論規范的地方。

據我所知,你不能在'TextBox'中調用'OnClick'。 它必須在TextBox之外。

如果您在TextBox中鍵入文本,鼠標左鍵單擊頁面上的其他位置,然后按Enter鍵,OnClick事件將起作用,奇怪的是。

如果您找到解決方法,請告訴我們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM