将onclick事件添加到禁用字段

时间:2013-04-11 08:56:13

标签: javascript html jsf onclick

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

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

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

2 个答案:

答案 0 :(得分: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>

其中容器的top和left值取决于select

的位置

请参阅此fiddle

答案 1 :(得分:0)

将disabled元素换行到另一个支持onclick属性的元素中。一个很好的例子就是<h:panelGrid/>

   <h:panelGrid style="width=20px" onclick="foo.myBar()">  
      <h:someComponent disabled="true"/>
   </h:panelGrid>