禁用输入上的OnClick事件

时间:2015-02-21 07:46:57

标签: javascript html html5 javascript-events

  • 我需要在已禁用的onclick标记上发布<input>个事件。
  • onclick事件无效。
  • 是否还有其他方法可以使用onclick事件来禁用基于id的输入?
  • 我尝试了以下代码。
  • 首先input工作但我需要和第二个一样工作,第一个也一样。 (我只需要在Clicked上调用函数input
  • 提前感谢..

我的代码:

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

2 个答案:

答案 0 :(得分:4)

&#13;
&#13;
function Clicked(event) {
  alert(event.id)
}

function ClickedDisabled(event) {
  alert(event.id)
}
&#13;
<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>
&#13;
&#13;
&#13;

试试这可能会对你有所帮助

答案 1 :(得分:0)

input[disabled] {pointer-events:none}
在CSS中

(它可以防止某些浏览器完全放弃对已禁用输入的点击),并捕获父元素上的点击。它是一个更清洁的解决方案,恕我直言,而不是在元素上放置透明覆盖以捕获点击,并且根据情况也可能比简单地模拟&#34;更容易。使用CSS的禁用状态(因为它不会阻止输入被提交,并且还需要覆盖默认浏览器&#39;禁用&#39;样式)。

如果您有多个此类按钮,则每个按钮都需要一个唯一的父级,以便能够区分单击了哪个按钮,因为使用pointer-events:none时,点击目标是按钮&#39 ; s父而不是按钮本身。 (或者你可以测试点击坐标,我猜......)。

如果您需要支持旧浏览器,请检查哪些支持pointer-eventshttp://caniuse.com/#search=pointer-events