【问题标题】:Dynamic form labels using jQuery使用 jQuery 的动态表单标签
【发布时间】:2015-09-13 12:10:55
【问题描述】:

我正在制作一个表单,我需要根据选择的值更改一些标签:

<%= form_for @advert do |f| %>
  <%= f.select :category, options_for_select(lista_kategorie_select.collect { |kat| [kat[0], kat[1]] }), {}, { class: "form_field form-control", id: "kategorie" } %>
  # kat[1] = selection (in jQuery) = ['mostki, 'korby', 'ramy', etc...]  
  <%= f.label :mostki, "Mostek", id: "size1" %>      
<% end %>

我尝试使用 jQuery 尽可能简单地做到这一点,但它不起作用:

jQuery ->
  text_container = $('#size1')
  $('#kategorie').change ->
    selection = $('#kategorie').val()
    if selection == 'mostki'
      text_container.text('Długość mostka')

代码有什么问题?也许有更好的方法来做到这一点?

【问题讨论】:

    标签: jquery ruby-on-rails ruby-on-rails-4 coffeescript


    【解决方案1】:

    你必须移动这条线:

    selection = $('#kategorie').val()
    

    在您的处理程序中,否则在页面加载时执行一次,并且选择值稍后不会更改。

    jQuery ->
      text_container = $('#size1')
      $('#kategorie').change ->
        selection = $('#kategorie').val()
        if selection == 'mostki'
          text_container.text('Długość mostka')
    

    【讨论】:

    • 谢谢,修复了这个错误后还是不行
    • 您的选项是否正确构建,即所有选项是否都具有正确的价值? $('#kategorie').val() 在控制台输入时返回什么?
    • 它正在返回预期值,因此选项似乎构建正确。
    • 问题解决了,我只是将脚本移到另一个文件,现在它可以工作了。
    猜你喜欢
    • 2023-03-30
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2023-03-07
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多