按enter键时使用Javascript
我想在输入字段中按enter键时调用函数。问题是,它现在只是重新加载页面,而不调用JavaScript。当我按下按钮时,JavaScript工作没有任何问题。现在,当我按下enter键时,我希望得到相同的结果 这是我的表格按enter键时使用Javascript,javascript,html,submit,enter,Javascript,Html,Submit,Enter,我想在输入字段中按enter键时调用函数。问题是,它现在只是重新加载页面,而不调用JavaScript。当我按下按钮时,JavaScript工作没有任何问题。现在,当我按下enter键时,我希望得到相同的结果 这是我的表格 <form onSubmit="changeView()"> <input type="text" value="London" name="region" id="region"> <input type="button" onClick="c
<form onSubmit="changeView()">
<input type="text" value="London" name="region" id="region">
<input type="button" onClick="changeView()" name="mySubmit" value="Search" >
</form>
看起来您正在使用jQuery,您是否考虑过将事件提交到文本框 像这样的
$(document).ready(function(){ // binds when the document has finished loading
$("#region").on('keypress', function(e){
if (e.which === 13){ // enter key
changeView();
}
});
});
HTML:
您需要停止keydown事件的传播。一旦onkeydown完成,enter仍在系统中,并将向上冒泡并提交表单。快速/肮脏的方法是简单地做一个返回错误;在onkeydown的末尾。重复?jQuery规范化了e.0,因此第3行是多余的。
$(document).ready(function(){ // binds when the document has finished loading
$("#region").on('keypress', function(e){
if (e.which === 13){ // enter key
changeView();
}
});
});
<form action="webservice.php" method="post">
<input type="text" value="London" name="region" id="region">
<input type="submit" name="mySubmit" value="Search" >
</form>
$('#region').on('keydown', function(e) {
if (e.which === 13) {
$(this).parent('form').submit();
}
});
$('.form').on('submit', function(e) {
var self = $(this);
$.ajax({
type: self.attr('method') ,
url: self.attr('action'),
data: {region: $('#region').val()},
success: function(response, textStatus, XMLHttpRequest) {
alert("SUCCESS");
map.panTo(new L.LatLng(response[0].lat,response[0].lon));
}
});
e.PreventDefault();
return false;
});