Ruby on Rails:display:none不会消除不需要的值

时间:2014-04-29 07:36:47

标签: javascript jquery html ruby-on-rails ruby

我有一个表单,其中有两个不同的select标签但具有相同的对象名称。这些select代码是隐藏的,只显示其他select代码中的某些值。

<%= f.select :gender, gender %> <!-- gender has Men and Women values -->

<div id="womens" style="display:none;">
  <%= f.select :service, women %>
</div>

<div id="mens" style="display:none;">
  <%= f.select :service, men %>
</div>

因此,每个女性和男性都有不同的服务选择。这是我的jQuery

jQuery ->
  $("#gender").change ->
    genderValue = $("#gender option:selected").attr("value")
    if genderValue == "Women"
      $("#womens").show()
      $("#mens").hide()
    else if genderValue == "Men"
      $("#mens").show()
      $("#womens").hide()
    else
      $("#womens").hide()
      $("#mens").hide()

我注意到,当我选择显示mens的值时,它只会保存仍在womens选择标记中的所有内容。当隐藏它,它真正隐藏的和我的提交表单不想从真正的隐藏字段中获取值时,我该怎么做呢。

由于

2 个答案:

答案 0 :(得分:3)

尝试禁用表单元素:

$("#mens select").prop('disabled', true);

答案 1 :(得分:2)

你遇到的问题是display: none只是隐藏元素

JS并不关心看起来像的东西;它只需要在屏幕上加载元素的DOM。我个人会使用Ajax来使这个灵活的&amp;安全,但正如Stefan已经建议的那样,禁用该元素将起作用

  

Disabled form inputs do not appear in the request