2014-05-15 41 views
0

考慮以下情況: 表中存在一個標籤爲「X」的列。 X包含一個複選框,可以選中或不選中。更精確地說這裏是代碼:複選框被禁用=假而沒有焦點

<h:form id="form"> 
    <rich:dataTable id="table" 
    <rich:column> 
     <f:facet name="header"> 
     <h:outputLabel value="X" /> 
      </f:facet> 
      <h:selectBooleanCheckbox id="x" readonly="true" 
       disabled="true" 
       value="#{some condition}" 
       styleClass="#{foo() ? 'inputChanged' : '' center" /> 
       . 
       . 
       . 

我得到的問題是: 這是不是很清楚,據此決定是否該複選框被選中與否。問題是,該複選框必須被禁用,否則它會被聚焦,並且可以單擊複選框。儘管這對後端數據沒有任何影響,但我不希望發生這種情況。這位消費者告訴我,如果複選框被標記或者沒有標記,你就不能很好地決定。

有沒有辦法讓複選框不被禁用,而用戶不能做任何改變?或者你有任何其他想法如何使這對客戶更加明顯?

+0

複選框不能只讀,因爲它不是值更改,而是狀態更改。 有沒有真正的任何干淨的解決方案我認爲這個問題已經在這裏回答,除非我失去了一些東西: http://stackoverflow.com/questions/155291/can-html-checkboxes-be-set-to -readonly – dprogramz

+0

好的,那我們來做一個解決方法。是否有可能爲禁用的複選框重新設置「禁用」?例如。讓他們成爲紅色或其他東西。我嘗試了CSS,但遺憾的是沒有任何進展。 – Chris311

+0

我在.css中添加了以下內容:input [type =「checkbox」] [disabled] {background:white; size =「100000」;}這完全沒有影響...... – Chris311

回答

0

以下工作:

input[type=checkbox]:not(:checked) { 
    outline:2px solid red; 
} 

這樣,您就可以覆蓋一個未選中的複選框的樣式,以便它有一個紅色邊框。