1

我正在尝试使用 jQuery 自动更新我的 Rails 应用程序中的相关选择框。它适用于没有像“Barahona”或“Manzanillo”这样的空格的值,但是当我尝试像“Puerto Plata”或“Santo Domingo”这样的东西时它会失败。

这是我选择“Puerto Plata”时来自控制台的错误。

Uncaught Error: Syntax error, unrecognized expression: optgroup[label=Puerto Plata] 

我正在使用从 Railscasts #88 采用并在此处列出的 jQuery 来选择一个端口,然后过滤泊位以仅列出来自该端口的泊位。

这是jQuery:

jQuery ->
  berths = $('#voyage_berth_id').html()
  console.log(berths)
  $('#voyage_port_id').change ->
    port = $('#voyage_port_id :selected').text()
    options = $(berths).filter("optgroup[label=#{port}]").html()
    console.log(options)
    if options
      $('#voyage_berth_id').html(options)
      $('#voyage_berth_id').parent().show()
    else
      $('#voyage_berth_id').empty()
      $('#voyage_berth_id').parent().hide()

这是视图:

  <%= f.label :port_id %>
  <%= f.collection_select :port_id, Port.order(:name), :id, :name  %>
  <%= f.label :berth_id %>
  <%# f.collection_select :berth_id, Berth.order(:name), :id, :name  %>
  <%= f.grouped_collection_select :berth_id, Port.order(:name), :berths, :name, :id, :name  %>
4

1 回答 1

1

您可能希望在带有空格的标签周围使用单引号。所以你的表情会变成这样。

options = $(berths).filter("optgroup[label='#{port}']").html()
于 2012-08-27T20:33:51.353 回答