1

我正在使用自定义生成器的表单。表单在文件中指定,该文件被解析并且 HTML 元素将由 JSF 2.x 以编程方式生成,例如 Apache MyFaces 的 HtmlInputText。

在我们的应用程序中,我们有一个只读用户角色。对于那些用户,我们尝试使所有输入选项disabled。在input字段上我们设置 htmlreadonly属性,对于其他没有字段readonly属性的元素select,我们设置disabled属性。

不幸的是,设置disabled=disabled也会使所有 javascript 事件失效。现在,我需要on click在禁用的选项字段中触发 javascript 函数。我怎样才能做到这一点?

4

2 回答 2

0

将禁用的元素包装在另一个支持 onclick 属性的元素中。一个很好的例子是<h:panelGrid/>

   <h:panelGrid style="width=20px" onclick="foo.myBar()">  
      <h:someComponent disabled="true"/>
   </h:panelGrid>
于 2013-04-11T12:43:00.813 回答
0

我不认为,你可以做很多事情。

尽管有一个丑陋的解决方案。

position:absolute非禁用容器放在禁用元素上,即

<select disabled="disabled" >
  <option>one</option>
  <option>two</option>
  <option>three</option>
</select>
<div onclick="alert('s')" 
  style="width:56px;position:absolute; top:1.7%; left:1.6%;height:18px;" >
</div>

其中容器顶部和左侧的值取决于选择的位置

看到这个小提琴

于 2013-04-11T11:55:54.347 回答