【问题标题】:I am using CSS to hide radio buttons, but I would like to display them on one page using Javascript我正在使用 CSS 隐藏单选按钮,但我想使用 Javascript 在一个页面上显示它们
【发布时间】:2015-04-25 01:04:17
【问题描述】:

在 Qualtrics 上,我输入了以下 CSS 来隐藏整个调查中的单选按钮:

input[type=radio]{
visibility: hidden;  
}

但是我希望它们显示在一页。我只能使用 javascript 来做到这一点。

有可能吗?

【问题讨论】:

    标签: javascript css radio-button qualtrics


    【解决方案1】:

    实现这一点的最简单方法之一是在您的 CSS 中创建一个单独的类:

    .hidden { visibility: hidden; }
    

    然后根据需要添加或删除该类。例如:

    document.getElementById("special-checkbox").classList.add('hidden');
    

    如果您绝对必须像在您的问题中一样使用声明 input[type=radio],那么您可以使用相同的技术覆盖它:

    input[type=radio].shown {
      visibility: visible;
    }
    

    您将像上面一样使用 javascript 将 shown 类添加到那些未隐藏的项目中。因为这个限定符比你的一般选择器更具体,所以它将优先。

    编辑

    我错过了一些东西。如果您希望隐藏或显示特定页面上的所有单选按钮,您可以将一个类附加到 DOM 中的任何共同祖先,然后使用级联。例如,您可以将 show-radio 类附加到层次结构中更高的某个 DIV 标记(使用上述技术),然后以下规则会将您的意图级联到所有无线电输入。

    show-radio input[type=radio] {
      visibility: visible;
    }
    

    这很好,因为您只需设置一个类一次,而不是为每个元素设置一次。

    【讨论】:

      【解决方案2】:

      无需添加 jQuery 库。 Qualtrics 使用prototype.js,你可以使用它。只需将以下 JavaScript 添加到页面上的第一个问题:

      Qualtrics.SurveyEngine.addOnload(function() {
          $$('input[type=radio]').each(function(obj) {
              obj.style.visibility = 'visible';
          });
      });
      

      代码找到页面上的所有单选按钮并将它们更改为可见。

      【讨论】:

      【解决方案3】:

      使用jQuery,你可以做到:

      $('input[type=radio]').css({visibility: 'visible'});

      【讨论】:

      • 由于某种原因这不起作用...您能想到任何潜在的原因吗?
      • 我不知道 Qualtrics 但其他人说它已经使用 Prototype,所以 jQuery 在这种情况下不起作用。
      猜你喜欢
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      • 2022-01-26
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多