【问题标题】:Greyout entire form css将整个表单 css 变灰
【发布时间】:2018-11-02 03:32:47
【问题描述】:

如果可以使用(由 Javascript 控制),我必须将整个表单灰显并禁用它

我的想法是:

<div style="background-color: gray; opacity:0.7; z-index:2;">
       <h:form prependId="false" id="login_form" style="x-index:1;">
             ...button
             ...inputBox
       </h:form>
</div>

但它不能正常工作,事实上 DIV 的灰色仅在背景中,我希望表单中的所有对象(输入框、按钮、文本等)都为灰色

我更喜欢只使用一个 DIV,这样我就不必更改每个对象的样式(禁用按钮、禁用输入框等...)

谢谢

【问题讨论】:

  • 什么是&lt;h:form&gt;?那不是普通的 HTML。
  • 我正在使用 PrimeFaces

标签: javascript html css forms


【解决方案1】:

有很多方法可以实现这一点 - 一种简单的、基于纯 CSS 的方法是定义一个 CSS 类 .disable-form 并将其应用于包含您的表单的 &lt;div/&gt;被禁用。

你可以这样做:

.disable-form {

   /* Make form elements appear disabled against grey background */
   background-color: gray;
   opacity:0.5; 

   /* Prevent user interaction with form while disabled */
   pointer-events:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div>
  <form prependId="false" id="login_form">
    <div>
      <label>Some field</label>
      <input />
    </div>
    <label>Some field not wrapped in div</label>
    <input />
  </form>
</div>


<br>
<br>
<button id="toggle-disable">Click to toggle form disable</button>
<script>

document.getElementById('toggle-disable')
.addEventListener('click', function() {

   document.getElementById('login_form')
  .parentNode
  .classList
  .toggle('disable-form');   
  
});
</script>

请注意,为了演示技术,我已调整此代码示例中的 HTML - 这里的关键是定义和应用 disable-form CSS 以实现对表单的预期效果。

【讨论】:

  • @Wal 不客气 - 如果有帮助,请考虑接受这个答案:-)
猜你喜欢
  • 2015-07-23
  • 2018-01-27
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
相关资源
最近更新 更多