0

form_forがあり、その中にtext_field_tagがほとんどありません。* _tagの1つでEnterキーを押すと、提供された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デフォルトを無効にしてイベントを上書きするにはどうすればよいですか?

Ruby:「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

解決済み、false を返す場合。disableEnterKey の最後にある場合、POST リクエストも行われません。迅速なフィードバックをありがとう @ujm!

于 2012-09-11T22:29:04.143 に答える