使用回车提交表单 - 无法使用箭头键+ Enter选择以前输入的值

时间:2011-09-26 15:51:18

标签: jquery form-submit keyevent

当按下Enter键时,我正在使用简单的javascript来提交表单:

$("input").keypress(function (e) {
    if (e.which == 13) {
        $(this).closest("form").submit();
        return false;
    }
});

现在有一个问题。
浏览器会记住您之前在文本字段中输入的内容。

所以我想说我从“自动完成”中选择了一些东西。我点击向下箭头键并按Enter键,想要选择之前输入的值。然后由于按键事件,表格显然会提交。

有没有办法解决这个问题?

1 个答案:

答案 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();
  });
});