入力があり、入力がフォーカスされているときにEnterキーを押したときに機能をアクティブにするイベントリスナーを追加したいだけです。純粋なJSでこれを行うにはどうすればよいですか?
今私は持っています:
HTML:
Enter your wage:<input type="text" id="wage" value ="" size=20>
<button id="sub">Submit</button>
Javascript:
var wage = document.getElementById("wage");
wage.addEventListener("change", validate);
var btn = document.getElementById("sub");
btn.addEventListener("click", validate);
つまり、ORテキストを変更する)をクリックすると、関数validate()がアクティブになりますが、Enterキーを押して呼び出します。
これを使用できます:
var wage = document.getElementById("wage");
wage.addEventListener("keydown", function (e) {
if (e.keyCode === 13) { //checks whether the pressed key is "Enter"
validate(e);
}
});
function validate(e) {
var text = e.target.value;
//validation of the input...
}
var elem = document.getElementById("wage");
elem.onkeyup = function(e){
if(e.keyCode == 13){
validate();
}
}
KeyCodeの代わりに key を使用した、現在受け入れられている回答(@MinkoGechevから)のバージョンを次に示します。
const wage = document.getElementById('wage');
wage.addEventListener('keydown', (e) => {
if (e.key === 'Enter') {
validate(e);
}
});
function validate(e) {
const text = e.target.value;
//validation of the input...
}
ボタン要素を
<input type="submit" value="Submit">
キーボードの入力ボタンで動作します。
またはjQueryを使用
$("#wage").on("keydown", function (e) {
if (e.keyCode === 13) { //checks whether the pressed key is "Enter"
validate(e);
}
});
wage.addEventListener('keydown', validate);
のようなものが必要です。
検証関数では、event.keyCode == 13
「Enter」キーを押します。
$(document).on("keyup", function(e) {
var key = e.which;
if (key == 13) // the enter key ascii code
{
login();
}
});