簡體   English   中英

HTML捕獲Enter鍵和Tab鍵

[英]HTML capture enter key and tab key

我想防止Enter鍵提交表單,我希望它充當TAB鍵,以僅跳轉到表單中的下一個字段或下一個元素。

HTML / JS有可能嗎?

如果無法使enter按鈕充當選項卡,是否有一種方法可以防止提交表單,而僅使用HTML上的按鈕提交表單?

編輯:

當我要求另一個問題時,我已經收到了針對該問題的解決方案!

在這里您可以找到解決方案。

出於可訪問性/可用性的原因,您實際上不應該阻止Enter鍵提交表單(假設瀏覽器無論如何都會這樣做; IIRC,某些較舊的瀏覽器則不會這樣做)。

假設您要執行此操作是因為對於每個表單提交,“提交”按鈕都具有一個click處理程序,那么您應該將該代碼移到一個單獨的函數中,並從表單的submit事件中調用它。

在jQuery中,它看起來像:

$('#myForm').submit(function(e) {
        if (!isValid()) {
            e.preventDefault();  // Could also be `return false;` but I prefer preventDefault.
        }
});

請參閱文檔

僅供參考,如果您要進行一些驗證,則應查看驗證插件

也許可以使用一些jQuery解決此問題-盡管我不知道如何模仿按鍵。

$(document).keyup(function(e) {
  if(e.keyCode == 13)
  {
    //Code to imitate keypress of Tab key
  }
});

編輯:快速jsFiddle來“模擬”選項卡按,這將轉到您提到的下一個字段。 (此功能基於在字段中按下Enter鍵的作用)

的jsfiddle

<html>
<body>
<script>
function tmpFn(val){
    if(event.keyCode=='13'){
    if (val<4)
        document.forms["yourform"].elements["box" + (val+1)].focus();
    else
        document.yourform.submit();
    return false;
    }
    return true;
}
</script>
<body>
<form name="yourform" action="#">
<input type="text" name="box1" onkeypress="return tmpFn(1)"><br>
<input type="text" name="box2" onkeypress="return tmpFn(2)"><br>
<input type="text" name="box3" onkeypress="return tmpFn(3)"><br>
<input type="text" name="box4" onkeypress="return tmpFn(4)"><br>
<input type="submit" name="done" value="Submit">
</form>
</body>
</html>

編輯 :不要使用'eval'..謝謝蒂姆和安迪!

為了防止回車按鈕提交表單,不要使用提交按鈕,而是使用<input type="button" ... onclick="submitForm();">來調用javascript提交表格。 我可能是錯的,但是我認為這應該防止在提交表單的任何其他元素上按回車鍵。

暫無
暫無

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

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