如果h:selectManyCheckbox有一个属性readonly="true",则用户无法选中或取消选中该复选框。但是可以点击它,为什么?
和其他HTML input
元素一样,readonly
属性只作用于输入元素的值,而不作用于复选框的状态。这确实很不直观。
可以使用JavaScript让onclick
在只读状态为true
时返回false
。
onclick="return #{!bean.readonly}" readonly="#{bean.readonly}"
请注意这种不直观的行为与JSF无关,而是与HTML有关。