如何基于布尔字段动态显示Rails字段's状态

How to dynamically show Rails fields based on a boolean field's state?

本文关键字:字段 状态 Rails 何基于 布尔 动态显示      更新时间:2023-09-26

在一个使用Jquery的Rails 3应用程序中,我试图根据布尔字段是true还是false来动态显示/隐藏表单元素。

目前,我的jquery函数看起来像这样:

$(function() {
    $('#boolean').change(function(){
        if ($(this).value == true) {
            $('.hidden-fields').show();
        } else {
            $('.hidden-fields').hide();
        }
    });
})

如何正确地将布尔字段值传递到此函数中,以便:

  1. 该函数在页面加载时初始化,并隐藏/显示字段基于数据库中的值;以及
  2. 当布尔值更改时,这些字段将被切换

抱歉,这是一个简单的问题。我正在努力掌握javascript,并非常感谢任何指针。

感谢

您的HTML页面上是否只有一个元素的id为boolean?因为使用#boolean将只返回第一个。如果有多个,则应该使用boolean,然后使用.boolean引用该类的所有元素。

但对于您的问题:

1) 您在那里的示例代码将在页面加载时运行,并将自动应用于具有.boolean类的所有元素(假设您这样做)。如果您想立即隐藏或显示元素,例如,因为DB中的值设置为false,那么当您在ERB或HAML或任何视图中呈现页面时,都应该这样做。

2) 如果您将这个JS附加到的元素是一个选择框或具有change()函数的东西,那么您就可以开始了。如果您想知道当DB发生更改时,该视图是否会自动更改其可见性,那么这就不一样了。