如何使用jquery迭代动态生成的组合框

时间:2014-06-24 14:44:08

标签: jquery ruby-on-rails erb

我正在使用html.erb在 rails 应用中生成视图。

我使用"each do | |"

生成组合框

如何使用jquery迭代值动态生成的组合框,并在组合框的任何值相同时提醒用户。

    <table class="holiday_allowance_schedule tabular_data_cell">
  <thead>
    <th class="years_from_accrual_start">
      <%= a(:company_policy, :years_from_accrual_start) %>
    </th>
    <th class="months_allocated"><%= a(:company_policy, :days_allocated) %></th>
    <th></th>
    <th></th>
  </thead>
  <tbody id="schedule_table">
    <% @policies.holiday_allocation_schedule.keys.sort.each do |year| -%>
      <tr id="<%= year %>">
        <% days = @policies.holiday_allocation_schedule[year] %>

        <td><%= select_tag("holiday_schedule[][year]", options_for_select(holiday_allocation_years_options, year)) %></td> #combo boxes with years

        <td><%= select_tag("holiday_schedule[][days]", options_for_select(holiday_allocation_days_options, days)) %></td>
        <td class="actions"><%= add_icon %></td>
        <td class="actions"><%= remove_icon %></td>
      </tr>
    <% end -%>
  </tbody>
</table>

例如:有五个组合框

1年

2年

3年

4年

5年

如果用户选择&#34; 3年&#34;在任何两个或更多组合框中必须显示警报

如何使用jquery或使用erb本身来完成此任务

1 个答案:

答案 0 :(得分:1)

将一个change()侦听器绑定到你的所有组合框,在那里进行检查。

$('select').change(function(){
   var values = []
   $.each($('select'), function(idx, sel){
     if(values.index(sel.val()) != -1){
       alert('same value selected')
     }else{
       values.push(sel.val())
     }
   })
})