[英]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鍵的作用)
<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.