输入密钥不提交 - 如何返回false

时间:2016-01-23 06:34:44

标签: javascript ruby-on-rails

我希望Enter Key不提交表单。我先做了这个。

 	$("#send_c").keypress(function(e) {
 	  if (e.which == 13) {
 	    e.preventDefault();
 	    return false;
 	  }
 	});

但按钮和Enter键的工作方式相同。即使按Enter键也没有任何反应或提交。我的第二次尝试就是这个。

<%=form_for [@article, @article.comments.build], remote: true, :onsubmit=>"return false;" do |f| %>
  <%=f.text_field :body, id: "c_i"%>
  <%=f.button :submit, id: "send_c"%>
<%end%>

这不起作用。表单由Enter键和提交按钮提交。

可能出现什么问题?

2 个答案:

答案 0 :(得分:1)

代码的问题是选择器

$("#send_c").keypress(function(e) {
      if (e.which == 13) {
        e.preventDefault();
        return false;
      }
    });

$("#send_c")是提交按钮的选择器,您可能必须将选择器设为$(window) 您可以使用以下脚本完成任务

$(document).ready(function() {
  $(window).keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });
});

供参考,请参阅此issue

答案 1 :(得分:0)

在javascript中:

function x13(x) { if(x.keyCode==13) return false; }

在html中:

<input onkeypress="return x13(event)">