在我将表格中的数据发送到Rails控制器之前,我还需要做一些javascript工作。
这是(简而言之)我的表格:
<form action="/results" class="search_users" method="POST">
...
<a class='search_users_btn' href='' id="search_users_form">
<span class="streamline" aria-hidden="true">Search</span>
</a>
</form>
当点击Search
按钮时,这条JS处理:
$(".search_users_btn").click(function(e) {
var location;
e.preventDefault();
location = $(".location_user").val();
$.when(geocodeFrom(location)).done(function() {
$(".search_users").submit();
});
});
问题是当用户点击ENTER
时,因为之后上面的javascript代码没有被执行。我试图添加以下内容:
$(".search_users").keypress(function(ev){
if (ev.keyCode == 13) {
console.log('xx');
//$("form")[0].submit();
}
});
但是当用户点击ENTER
并且浏览器立即将表单发送给控制器时,此代码段无法处理。
如何处理用户在Javascript中按ENTER
的情况?
答案 0 :(得分:2)
我认为ENTER会触发表单中的提交,请尝试以下操作:
$(".search_users").keypress(function(ev){
if (ev.keyCode == 13) {
ev.preventDefault();
console.log('gotcha');
//$("form")[0].submit();
}
});
但您也可以使用标准按钮处理表单上的提交事件,进行处理,然后对(php?)处理页面进行ajax调用:
$(".search_users").on("submit", function(ev){
ev.preventDefault(); //prevents the original submit
//information processing ...
//AJAX call to the form processing page ...
}
});