-1
我有一個帶有onClick事件和帶onKeyDown事件的文本框的按鈕。Javascript爲什麼onClick通過輸入鍵被調用
Button: onclick="myFunc(3)"
Textfield: onKeyDown="if(event.keyCode==13) myFunc(3);"
不知怎的,如果我按下輸入鍵,我不知道爲什麼按鈕被調用。
我有一個帶有onClick事件和帶onKeyDown事件的文本框的按鈕。Javascript爲什麼onClick通過輸入鍵被調用
Button: onclick="myFunc(3)"
Textfield: onKeyDown="if(event.keyCode==13) myFunc(3);"
不知怎的,如果我按下輸入鍵,我不知道爲什麼按鈕被調用。
當您在文本字段中按下Enter鍵時,會觸發表單提交,並且瀏覽器會模擬單擊表單的第一個提交按鈕。
您可以通過防止按鍵(不是keydown)事件的默認操作來避免這種情況。
var s = document.querySelector('[type=submit]');
var t = document.querySelector('[type=text]');
var f = document.querySelector('form');
t.addEventListener('keydown', function(event) {
if (event.keyCode == 13) {
alert("enter pressed")
}
});
t.addEventListener('keypress', function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
<form action="/">
<input type="text">
<input type="submit">
</form>
這是我的*其他*理論,但考慮到這個問題缺乏關於表單的任何信息或者該按鈕是一個提交... –
我們會需要一個** **很多更多信息,與合作,能夠有效地回答這個問題。 –
請發佈您的相關HTML。特別是,按鈕是一個提交按鈕?另外,你怎麼知道點擊按鈕被觸發,因爲你在這兩種情況下都調用了相同的函數? – Amadan