2013-04-11 98 views
1

我正在使用窗體自定義生成器。表單在文件中指定,該文件被解析並且HTML元素將以編程方式由JSF 2.x生成,例如Apache MyFaces的HtmlInputText。添加onclick事件以禁用字段

在我們的應用程序中,我們有一個只讀用戶角色。對於那些用戶,我們嘗試使所有輸入選項disabled。對於input字段,我們正在設置html readonly屬性,對於其他元素,其中沒有readonly屬性,如select字段,我們正在設置disabled屬性。

不幸的是,設置disabled=disabled也會使所有JavaScript事件失效。現在,我需要在禁用的選項字段觸發一個JavaScript函數on click。我怎樣才能做到這一點?

+0

無形格,然後單擊綁定到該div,也許去掉禁用狀態使它不變?例如,即使您使用鼠標或鍵盤更改選項,也可以使其保持在選定的選項上。只是一些快速的想法 – aleation 2013-04-11 11:32:23

回答

0

總結支持onclick屬性的另一個元素中的disabled元素。這方面的一個很好的例子是那些選擇字段的頂部<h:panelGrid/>

<h:panelGrid style="width=20px" onclick="foo.myBar()"> 
     <h:someComponent disabled="true"/> 
    </h:panelGrid> 
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> 

,其中頂部的值,並放置在容器取決於選擇

的位置看到這個fiddle