jQuery - 检测是否通过按 ENTER 发送了表单
jQuery - Detect if a form was sent out by hitting ENTER
在将数据从表单发送到 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
的情况?
我认为 ENTER 会触发表单提交,试试这个:
$(".search_users").keypress(function(ev){
if (ev.keyCode == 13) {
ev.preventDefault();
console.log('gotcha');
//$("form")[0].submit();
}
});
但您也可以使用标准按钮处理表单上的提交事件,进行处理,然后 ajax 调用 (php?) 处理页面 :
$(".search_users").on("submit", function(ev){
ev.preventDefault(); //prevents the original submit
//information processing ...
//AJAX call to the form processing page ...
}
});
在将数据从表单发送到 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
的情况?
我认为 ENTER 会触发表单提交,试试这个:
$(".search_users").keypress(function(ev){
if (ev.keyCode == 13) {
ev.preventDefault();
console.log('gotcha');
//$("form")[0].submit();
}
});
但您也可以使用标准按钮处理表单上的提交事件,进行处理,然后 ajax 调用 (php?) 处理页面 :
$(".search_users").on("submit", function(ev){
ev.preventDefault(); //prevents the original submit
//information processing ...
//AJAX call to the form processing page ...
}
});