Javascript 当文本框与rails中模型的ID号匹配时,尝试选中特定复选框

Javascript 当文本框与rails中模型的ID号匹配时,尝试选中特定复选框,javascript,ruby-on-rails,ruby,ruby-on-rails-3,coffeescript,Javascript,Ruby On Rails,Ruby,Ruby On Rails 3,Coffeescript,我有以下三个表格: Student,Register和一个名为Student\u Register的联接表。 为便于理解,以下是每种类型的模型: class Register < ActiveRecord::Base has_many :student_registers has_many :students, :through => :student_registers belongs_to :event attr_accessible :date, :stude

我有以下三个表格:

Student
Register
和一个名为
Student\u Register
的联接表。

为便于理解,以下是每种类型的模型:

class Register < ActiveRecord::Base
  has_many :student_registers
  has_many :students, :through => :student_registers
  belongs_to :event
  attr_accessible :date, :student_ids, :module_class_id, :event_id
end

class Student < ActiveRecord::Base
  has_many :student_registers
  has_many :registers, :through => :student_registers
  attr_accessible :first_name, :last_name, :university_id
end

class StudentRegister < ActiveRecord::Base
  belongs_to :register
  belongs_to :student
  attr_accessible :present, :register_id, :student_id, :time_of_arrival
  default_scope :order => 'present DESC'
end
该页面的来源如下所示:

我想做的是:

当文本框中的文本与学生的
大学ID
中的一个匹配时,我希望选中相应的复选框,理论上,一旦选中,它的表单将自动提交,“嘿,presto”,它的表单将更新

这是我当前的JS/Coffeescript代码:

registers.js.coffee

<table border="1">
  <%= text_field_tag 'Card_ID',nil,  :autofocus => true %>
      <tr><td>Present</td>
        <td>University ID</td>
    <td>First Name</td>
        <td>Last Name</td>
        <td>Time of Arrival</td>
      </tr>
  <tr>
  <% @studentregister.each do |t| %>
<%= simple_form_for t do |streg| %>
      <td><div class="present"><%= streg.check_box :present, :onChange => "submit()"%>  </div>
        <%= streg.submit :style => 'display: none' %></td>
            <td><%= streg.label Student.find(t.student_id).university_id %></td>
            <td><%= streg.label Student.find(t.student_id).first_name %></td>
            <td><%= streg.label Student.find(t.student_id).last_name %></td>
            <% if t.time_of_arrival %>
            <td><%= streg.label t.time_of_arrival.strftime('%H:%M:%S%P')%></td>
                <% else %>
            <td><%= streg.label " "%></td>
                <% end %>
             </tr>
    <% end %>
    <% end %>
</table>
$("input[name=Card_ID]").keyup ->
  if @value.length > 3
    $("input[name=\"student_register[present]\"]").prop "checked", true
  else
    $("input[name=\"student_register[present]\"]").prop "checked", false
我知道这段代码没有达到我想要的效果,主要是因为我的JS/Coffeescript知识为0,但也因为我只是想检查它是否有效,当文本框的长度值大于3时,它应该选中一个/所有复选框(不确定这段代码将检查什么,因为不太清楚,并且for the复选框是相同的),但是它不起作用


我甚至不知道如何使用Ruby代码来搜索
大学ID
,并将其与学生匹配。我现在真的很困惑,已经做了三天了。

我正试图让你的问题围绕巨型尺寸描述进行浏览。如果我做对了,你想要这样的东西:

表单有一个
id
属性,请使用它。查看HTML的结构:

# Each 'student_register' form has an id "edit_student_register_#{id}"
# where id is the object's id
# Inside each of these forms there is a check box with name "student_register[present]"

<form id="edit_student_register_15">
  <input name="student_register[present]"/>
</form>

# So you need to get that input with a selector like this:
$("input[name=Card_ID]").keyup (e)->
  if e.wich is 13 # If enter key is pressed...
    id = this.text # To interpolate in the selector below
    $("form#student_register_#{id} input[name='student_register[present]']").attr 'checked', true
#每个“学生注册”表单都有一个id“编辑学生注册#{id}”
#其中id是对象的id
#在每个表格中都有一个名为“学生注册[目前]”的复选框
#因此,您需要使用如下选择器获取该输入:
$(“输入[name=Card\u ID]”)。键入(e)->
如果e.wich为13#如果按enter键。。。
id=this.text#在下面的选择器中插入
$(“form#student#U register(表格#student#{id}input[name='student#U register[present]']))。attr'checked',true

在浏览器控制台中玩一玩,检查选择器显示的内容。

很抱歉有这么大的描述(--),只是想确保我没有遗漏任何内容。所以,当你说添加
内容标签
时,会在
之后吗?是的,它会生成一个
标签,其中包含你传递给它的块作为内容。我强烈建议你停下来10分钟,尝试切换到。这会让你的生活更轻松。我完成了changes,但没有任何变化,仍然不起作用。也许我做错了什么,我应该在文本框中写些什么?玩了一会儿,仍然没有什么…你想让我把代码放到GitHub上让你自己检查一下吗?