使用simple_form隐藏/显示基于单选选择的字段
Hiding/Showing Fields Based On Radio Selection With simple_form
我有一个表单,我需要用户选择(带单选按钮)一个选项,该选项将决定下面的下一个表单字段。在这种情况下,他们的帖子可以是帖子或帖子的修订版。因此,选择"帖子"将显示一个标题字段(为帖子命名),选择"修订"将显示现有帖子的选择列表(标题将被继承)。
_form.html.erb
<!--Form inputs-->
<%= f.collection_radio_buttons :is_revision, [[false, 'Post'] ,[true, 'Revision']], :first, :last %>
<%= f.input :revision_id, collection: @originals, :input_html => {:id => 'revision'} %>
<%= f.input :title, :input_html => { :maxlength => '50', :placeholder => 'Title', :id => 'title'} %>
<!--Javascript-->
<script type="text/javascript">
$('input[name="post[is_revision]"]').on("change", function(){
if ( $("#post_is_revision_true").attr("checked")){
$("#title").hide();
$("#revision").show();
}
if ( $("#post_is_revision_false").attr("checked")){
$("#revision").hide();
$("#title").show();
}
});
</script>
我应该提到,当隐藏和显示一个字段时,这很好,但当选择另一个单选按钮时,没有任何变化。我觉得逻辑是正确的(尽管我不是JS最强的),但我似乎不明白这一点。
试试这个。
$('input[name="post[is_revision"]').change(function() {
var selected = $('input:checked[name="post[is_revision]"]').val();
if(selected == 'revision') {
$('#title').hide();
$('#revision').show();
} else if(selected == 'new_post') {
$('#revision').hide();
$('#title').show();
}
});
另一种方法,更小但更令人困惑:
$('input[name="post[is_revision"]').change(function() {
var is_revision = $('input:checked[name="post[is_revision]"]').val() == "revision";
$('#title').toggle(!is_revision);
$('#revision').toggle(is_revision);
});
如果总是先选择一个,你可以将其浓缩为:
$('input[name="post[is_revision"]').change(function() {
$('#title').toggle();
$('#revision').toggle();
});
或者踢、笑、滑:
$('input[name="post[is_revision"]').change(function() {
$('#title').slideToggle();
$('#revision').slideToggle();
});
如果您有任何问题,请发表评论。
相关文章:
- 禁用/启用基于单选/选择选项所选Javascript的文本框
- 基于单选/选择选项重定向
- 单击提交时存储输入单选选择
- jQuery Mobile:单选选择菜单值干扰多选菜单的处理程序
- 多个文本字段,根据单选选择显示/隐藏(Html,JS)
- JavaScript - 复选框的作用类似于单选按钮
- 在单选选择中更改前缀货币符号
- 单击单选选择时动态显示 DIV
- 检查是否进行了单选选择
- 基于下拉选择的单选选择/取消选择
- 防止单选选择与时间选择重叠
- 清除本地存储以进行单选选择
- Javascript getElementById()适用于文本框,但不适用于;不能使用单选按钮或下拉选择器
- 按钮的行为类似于单选按钮
- javascript将类添加到基于单选选择的类中
- 使用simple_form隐藏/显示基于单选选择的字段
- 将单选选择值更改为图像
- 选择依赖于单选按钮
- 大量的Jquery和复选/单选/选择样式元素- Flash的无样式内容
- 使用 JavaScript 使复选框的行为类似于单选按钮