在将数据从表单发送到 Rails Controller 之前,我需要执行一些 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
时,此代码片段不会处理浏览器立即将表单发送到 Controller 。
当用户按下ENTER
时如何处理这种情况在 JavaScript 中?
最佳答案
我认为 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 ...
}
});
关于javascript - jQuery - 检测是否通过按 ENTER 发送表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27743486/