2016-09-24 61 views
2

簡單我有這樣的HTML文檔如何對焦按鈕在Java腳本

<input type="text" id="my_txt" onkeypress="move_focus(event)"/> 
<br> 
<input type="button" id="my_btn" /> 
<script > 
function move_focus(e) 
{ 
    if (e.keyCode==13) $("#my_btn").focus(); 
} 
</script> 

我要的是: 輸入文本my_txt的按鍵事件,如果按下的鍵是ENTER關鍵之舉將焦點按至my_btn按鈕。

我做得像上面那樣但是不起作用,按下Enter鍵後沒有任何動作完成。

我在這個網絡中發現了多個關於這個話題的帖子,但是大多數答案都很複雜,並且有些讓我失去了我所需要的東西。

Help Please .. ..提前致謝。

+1

的[在JavaScript中輸入按鍵事件]可能的複製(http://stackoverflow.com/questions/905222/enter-key-press-event-in-javascript) – Siguza

回答

1

重要部分爲此使用bind。綁定創建一個新函數,將thisthis)設置爲傳遞給bind()的第一個參數。 所以,當我們寫$('#my_txt').bind("enterKey"),它實際上映射#my_txt在同樣的情況下事件enterKey該函數將執行,所以我們每次按下ID爲#mytxtinput元素中的一個關鍵,當我們鬆開按鍵,它會檢查是否按下的鍵是否爲Enter Key,是否由行$('#my_txt').keyup(e)提供,其中event對象爲參數。這裏的事件將是keypress事件。

move_focus = function move_focus(e) { 
 
    $('#my_txt').bind("enterKey",function(e){ 
 
    $("#my_btn").focus(); 
 
    //disable to prevent multiple enter 
 
    $(this).attr("disabled", "disabled") 
 
    }); 
 
    $('#my_txt').keyup(function(e){ 
 
    if(e.keyCode == 13)  //checks if the event object is a Enter Key or not 
 
    { 
 
     $(this).trigger("enterKey"); //explicitly triggers enterkey event with whom #my_txt is bound to 
 
    } 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="my_txt" onkeypress="move_focus(event)"/> 
 
<br/> 
 
<input type="button" id="my_btn" value="button" />

+0

非常感謝你的工作正常,但是你能否逐行解釋函數的代碼(當且僅當你的時間允許)謝謝你再次。 –

+0

我會在代碼上寫下評論,以便以後也可以用於其他人的搜索。 – Cyclotron3x3

3

Keynumber 13是用於默認的關鍵,接受的東西(https://api.jquery.com/event.preventdefault/),所以basicly你有這個覆蓋它:

e.preventDefault(); 

整個代碼

<input type="text" id="my_txt" onkeypress="move_focus(event)"/> 
<br> 
<input type="button" id="my_btn" /> 
<script > 
function move_focus(e) 
{ 
    e.preventDefault(); 
    if (e.keyCode==13) $("#my_btn").focus(); 
} 
</script> 
+0

感謝你的努力,但這並沒有把焦點轉移到按鈕! –

0

嘗試這個例子,它使用的jQuery:

$("#my_txt").keypress(function(event) { 
 
\t var keycode = (event.keyCode ? event.keyCode : event.which); 
 
    if(keycode == '13'){ 
 
    \t $("#my_btn").focus(); 
 
    } 
 
});
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
 
<body> 
 
    <input type="text" id="my_txt"/><br> 
 
    <input type="button" id="my_btn" value="Button" /> 
 
</body>

-2

代替使用:

$("#my_btn").focus(); 

請使用:

document.getElementById("my_btn").focus(); 
相關問題