【发布时间】:2014-08-11 21:53:20
【问题描述】:
我目前有一个嵌套在 do/end 块中的表单,因此对于创建的每个对象,它都有自己的下拉菜单:
<% @shows.each do |show| %>
<%= form_for show, :url => show_record_path(:show_id => show.id), method: :post do |f| %>
<%= f.select :box_id, Box.all.collect { |p| [ p.box_number, p.id ] }, class: "show-radio-button", :include_blank => true %>
<%= f.submit "Record", data: { disable_with: "Please wait.." }, :disabled => true, class: "record-button" %>
<% end %>
如果从下拉列表中选择了一个选项,这是我的 jQuery 启用提交按钮:
$('#show_box_id').on('keyup change', function(){
if ($('#show_box_id').val() == '' ) {
$('.record-button').prop('disabled', true);
$(".record-button").css("background-color", "");
} else {
$('.record-button').prop('disabled', false);
$(".record-button").css("background-color", "#008C00");
}
});
问题是 jQuery 仅适用于在 do/end 块中创建的第一个对象(因此,如果我从下拉列表中选择不在第一个对象中的内容,则不会发生任何事情),并且如果我从下拉列表中选择某些内容在第一个对象中,然后 jQuery 在所有对象上运行。
我怎样才能使 jQuery 代码在每个单独创建的对象上工作而不影响其他对象?
【问题讨论】:
标签: javascript jquery ruby-on-rails forms