根据选择框的值隐藏字段

时间:2015-10-08 09:37:23

标签: jquery ruby-on-rails

我正在使用Rails 3.1并且我正在渲染表单。如果用户在选择字段中选择“其他”,我还有一个我想要显示的字段。我目前已经选择了其他字段时显示其他字段,但是如果用户在页面重新加载时保存他们的选择,则即使选择框是其他字段,它也不会再次加载附加字段。

Here is the jQuery

$(document).ready(function() {
    $('#user_gender_custom').hide();
    $("#user_gender").change(function() {
        if ($("#user_gender").val() == "custom") $("#user_gender_custom").show();
        else $("#user_gender_custom").hide();
    });
});   

如果删除初始$('#user_gender_custom').hide();,即使选择框值不是其他,它也会在页面加载时加载附加字段。

任何人都可以告诉我如何正常工作吗?非常感谢帮助。

2 个答案:

答案 0 :(得分:1)

如果唯一的问题是初始加载(字段总是显示),那么做这样的事情可能是有意义的:

function toggle_custom() {
  if ($("#user_gender").val()=="custom")
    $("#user_gender_custom").show();
  else
    $("#user_gender_custom").hide();
}

$(function() { 
  toggle_custom();
  $("#user_gender").change(function() {
    toggle_custom();
  });
});

答案 1 :(得分:0)

$(document).ready(function() {
    $("#user_gender").val("custom")
    $('#user_gender_custom').hide();
    
    $("#user_gender").change(function() {
        if ($("#user_gender option:selected").val() == "custom") $("#user_gender_custom").show();
        else $("#user_gender_custom").hide();
    });
  $("#user_gender").change();
});  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id='user_gender'>
  <option val=''></option>
  <option val=''>custom11</option>
<option val='custom'>custom</option>

</select>
<input type='text' id='user_gender_custom'/>

请手动添加更改。这样更改功能将在加载时调用