0

我有 form_for,里面有几个 text_field_tag。当我输入 *_tag 之一时,它会向提供的 URL 发出 POST 请求,我想禁用它并执行其他操作。

  <%= form_for 'sample', :url => sample_path, :remote => true do %>
    <%= text_field_tag :field_1, nil, :class => 'input', :onKeyPress=>"return disableEnterKey(event)" %>
    <%= text_field_tag :field_2, nil, :class => 'input', :onKeyPress=>"return disableEnterKey(event)" %>
      <%= submit_tag "Send", :id => 'send', :class => 'floatright' %>
    </div>
  <% end %> 

这是disableEnterKey()

disableEnterKey = function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    if(code == 13) { //Enter keycode
        //do somethig else
    }
  };

disableEnterKey被调用了,但是 POST 请求也是如此。如何禁用默认设置onKeyPress并覆盖事件?

红宝石:“1.8.7”

导轨:3.2.8

4

2 回答 2

1

你需要使用:

e.preventDefault();

所以它看起来像这样:

disableEnterKey = function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    if(code == 13) { //Enter keycode
        e.preventDefault();
        //do somethig else
    }
  };
于 2012-09-11T22:28:13.513 回答
0

解决了,如果你有 return false; 在 disableEnterKey 结束时,它也不会发出 POST 请求。感谢@ujm 的快速反馈!

于 2012-09-11T22:29:04.143 回答