我有一个表单,其中有两个不同的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
选择标记中的所有内容。当隐藏它,它真正隐藏的和我的提交表单不想从真正的隐藏字段中获取值时,我该怎么做呢。
由于
答案 0 :(得分:3)
尝试禁用表单元素:
$("#mens select").prop('disabled', true);
答案 1 :(得分:2)
你遇到的问题是display: none
只是隐藏元素
JS并不关心看起来像的东西;它只需要在屏幕上加载元素的DOM。我个人会使用Ajax来使这个灵活的&amp;安全,但正如Stefan
已经建议的那样,禁用该元素将起作用