当按下Enter键时,我正在使用简单的javascript来提交表单:
$("input").keypress(function (e) {
if (e.which == 13) {
$(this).closest("form").submit();
return false;
}
});
现在有一个问题。
浏览器会记住您之前在文本字段中输入的内容。
所以我想说我从“自动完成”中选择了一些东西。我点击向下箭头键并按Enter键,想要选择之前输入的值。然后由于按键事件,表格显然会提交。
有没有办法解决这个问题?
答案 0 :(得分:1)
在浏览器填写输入字段之前触发了按键事件。在用户点击Enter之前跟踪字段中的内容,您可以通过除按键之外的某些方式来判断值是否已更改。如果用户按Enter键选择自动填充值,则不会提交。
这至少适用于FF和Chrome:
var typed = "";
$(document).ready(function(){
$("#input-field").keypress(function (e) {
if (e.which == 13) {
if($("#input-field").val() != typed) {
$(this).closest("form").submit();
//alert($("#input-field").val());
return false
}
}
typed = $("#input-field").val();
});
});