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 个提交按钮,所以我最终使用了 input[name="student[studentnumber] 而不是 #id 并且我不得不使用 .触发方法而不是 .submit 因为我在同一页面上有 2 次提交。

最终的脚本看起来像这样

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

1 回答 1

0

我相信您走在正确的轨道上,但是$("#___").click()您应该提交表单而不是调用单击某些内容,而不是 。

此外,在您的if声明中,您使用的是 DOM 元素,而您应该使用 jQuery 对象。$(this)this

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

最终代码看起来像,

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

另外,我想指出,由于您使用的是 rails,因此您应该使用 Coffee。它好多了。

于 2013-08-08T13:58:42.037 回答