簡體   English   中英

禁用輸入上的OnClick事件

[英]OnClick Event on a disabled input

  • 我需要在<input>標簽上有一個onclick事件,該事件被禁用。
  • 這里onclick事件不起作用。
  • 有沒有其他方法可以使用基於id的禁用輸入的onclick事件?
  • 我試過下面的代碼。
  • 第一次input工作但我需要與第二次input相同,也與第一次input相同。 (我需要調用函數Clicked on input only)。
  • 提前致謝..

我的代碼:

 function Clicked(event) { alert(event.id) } function ClickedDisabled(event) { alert(event.ids) } 
 <input type="text" id="ID" onclick="Clicked(this)" /> <input type="text" id="IDs" onclick="ClickedDisabled(this)" disabled /> 

 function Clicked(event) { alert(event.id) } function ClickedDisabled(event) { alert(event.id) } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <input type="text" id="ID" onclick="Clicked(this)" /> <span style="position:relative;"> <input type="text" id="IDs" disabled /> <div style="position:absolute; left:0; right:0; top:0; bottom:0; cursor: pointer;" id="IDs" onclick="ClickedDisabled(this)"></div> </span> 

試試這可能會對你有所幫助

input[disabled] {pointer-events:none}

在您的CSS中(它可以防止某些瀏覽器完全放棄對已禁用輸入的點擊),並捕獲父元素上的點擊。 這是一個更清潔的解決方案,恕我直言,而不是在元素上放置透明覆蓋來捕獲點擊,並且根據情況也可能比使用CSS簡單地“模擬”禁用狀態容易得多(因為這不會阻止輸入提交,還需要覆蓋默認瀏覽器“禁用”樣式。

如果您有多個這樣的按鈕,則每個按鈕都需要一個唯一的父按鈕,以便能夠區分單擊了哪個按鈕,因為使用pointer-events:none ,單擊目標是按鈕的父按鈕而不是按鈕本身。 (或者你可以測試點擊坐標,我想......)。

但是,如果您需要支持舊版瀏覽器,請檢查哪些支持pointer-eventshttp//caniuse.com/#search=pointer-events

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM