使用Jquery / Javascript在Formtastic中自动提交

时间:2013-08-01 12:52:37

标签: jquery ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 formtastic

一旦输入字段'studentnumber'达到8,我希望能够自动提交表单。 但我对jquery不太熟悉,我真的不知道从哪里开始。 我试着这样做我自己,但从我的理解Jquery / javascript使用Id和类?

我也找到了以下功能,并尝试了,但我认为我这样做是错误的。

$('#____').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个提交按钮我最后使用输入[name =“student [studentnumber]而不是#id 我必须使用.trigger方法而不是.submit,因为我在同一页面上有2个提交。

最终的脚本看起来像这样

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

1 个答案:

答案 0 :(得分: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();
});

另外,我想要注意,因为你使用的是rails,你应该使用Coffee。它更好。