0

入力フィールド 'studentnumber' が 8 に達したらフォームを自動送信できるようにしたいのですが、jquery に詳しくなく、どこから始めればよいかわかりません。私はこれを自分でやろうとしましたが、私が理解していることから、Jquery/javascript は Id と class を使用していますか?

次の機能も見つけて試してみましたが、これは間違った方法でやっていると思います。

$('#____').keyup(function(){
if(this.value.length ==8){
$('#___').click();
}
});

私のフォームはこんな感じです。

<%= semantic_form_for [@event, @student] do |f| %>
<%= f.inputs do %>
<%= f.input :event, :label => "Select Your Event", :include_blank => false %>
<%= f.input :studentnumber, :label => "Student Number", :input_html => {:autofocus => true} %>
<% end %>

<%= f.actions do %>
<%= f.action :submit, :as => :input %>
<% end %>
<% end %>

どんなフィードバックでも大歓迎です。前もって感謝します

誰かが答えを探している場合、アプリに2つの送信ボタンがあったので、#idの代わりにinput[name="student[studentnumber]を使用することになり、..同じページに2つの送信があったため、.submitの代わりにトリガーメソッド。

最終的なスクリプトは次のようになります

$('input[name="student[studentnumber]"]').keyup(function(){
if($(this).val().length ==8)
  $('input[name="commit"]').trigger('click');});
4

1 に答える 1

0

あなたは正しい方向に進んでいると思いますが、代わりに$("#___").click()、何かをクリックして呼び出すのではなく、フォームを送信する必要があります。

また、ifステートメントでは、jQuery オブジェクトを使用する必要があるときに、DOM 要素を使用しています。$(this)とは対照的にthis

$("form#theForm").submit() http://api.jquery.com/submit/

最終的なコードは次のようになります。

$('#text_field').keyup(function(){
  if($(this).value.length ==8)
    $('form#myForm').submit();
});

また、レールを使用しているため、Coffee を使用する必要があることに注意してください。それはずっといいです。

于 2013-08-08T13:58:42.037 に答える