【问题标题】:CoffeeScript get select field from id/class/nameCoffeeScript 从 id/class/name 中获取选择字段
【发布时间】:2017-09-25 09:06:43
【问题描述】:

我是 CoffeeScript 的新手,被一些愚蠢的任务困住了。我无法从他的 id、自定义类或名称中获取选择器字段。

用户/_form.html.erb:

<%= form_for user do |f| %>
  <% if user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(user.errors.count, 'erro') %> prohibited this user from being saved:</h2>

      <ul>
      <% user.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <p>Pseudo:</p>
    <%= f.label :name %>
    <%= f.text_field :name, id:'name_field' %>

    <%= f.label :status %>
    <%= f.select :status, options_for_select(%w(Visitor Member), id: 'status_select', selected: user.status) %>

    <p>Account:</p>
    <%= f.fields_for :account, @account do |account| %>
      <%= account.label :city %>
      <%= account.text_field :city, id: 'city_field' %>

      <%= account.label :email %>
      <%= account.text_field :email, id: 'email_field' %>
    <% end %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

app/assets/javascripts/users.coffee

jQuery(document).on 'turbolinks:load', ->
  status = $("#status_select")
  city = $("#city_field")

  city.on "change", ->
    alert "city field changed!"

  status.on "change", ->
    alert "status field changed!"

我可以在这里获取所有其他字段,例如城市,但无法获取选择字段。我似乎只能像 status = $("select") 这样从他的班级中获得它,但将来我将在此页面中有多个选择器,我需要具体访问这个。

我不明白是什么让这个选择器字段与 text_fields 不同,以及为什么我不能简单地给他一个 id 或名称并访问它。

【问题讨论】:

  • 您在网络浏览器中查看过控制台吗?有时它会给出错误,告诉你出了什么问题。我在这里有点猜测,但看起来你的 id: 'status_select' 仍然在 options_for_select 括号内。尝试将它移到这些之外,看看它是否有效。
  • 我的 Web 控制台中没有错误。此外,id: 'status_select' 最初位于 options_for_select 之外,它没有任何区别。

标签: javascript ruby-on-rails ajax coffeescript


【解决方案1】:

确保生成的结果 html 元素具有您期望的 id。看起来您正在将 id 'status_select' 添加到每个选择选项而不是选择元素本身。试试:

<%= f.select :status, options_for_select(%w(Visitor Member), selected: user.status), {}, {id: 'status_select'} %>

【讨论】:

    猜你喜欢
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2014-11-27
    • 2022-11-15
    • 1970-01-01
    相关资源
    最近更新 更多