我需要实现一个包含功能列表(复选框,复选框已选中=功能已启用)的表单,但是如果选中了功能(例如,如果用户选中“ additional_notification_email”,则某些功能还具有其他选项)他必须提供新的电子邮件地址)。 我使用simple_form。
我的问题是:如何: •如果选中复选框,则需要其他选项 •如果没有选择任何选项(或功能没有其他选项),则传递给控制器为空的散列,如果选项存在,则传递到{“ additional_email”:“ test@test.com”)?
当前针对我使用的每个功能:
= f.fields_for "additional_notification_email" do |feature|
.form-group#additional_notification_email
= feature.check_box :status, id: "additional_notification_email"
= feature.label :name, "additional_notification_email"
= feature.fields_for :options do |o|
= o.input......
答案 0 :(得分:0)
我做了什么(我还不知道这是否是我的解决方案...。) 我添加了一些jQuery脚本,如下所示,以切换选项并在需要时将字段值设置为nil。
我还在等待更好的解决方案:)
function toggleOptions(){
$(":checkbox").change(function() {
var feature_name = $(this).attr('id')
var feature = $('#' + feature_name + '')
if (this.checked){
console.log("checked")
}
else {
console.log("not checked")
feature.find(".email").val(null)
}
feature.find(".form-group").toggle()
})
}