单击禁用按钮时生成警报窗口

Posted

技术标签:

【中文标题】单击禁用按钮时生成警报窗口【英文标题】:Make alert window when clicking a disabled button 【发布时间】:2015-07-06 23:36:33 【问题描述】:

我有一个按钮默认禁用,但是当检查复选框时,然后启用按钮。我想编辑脚本以在禁用时单击按钮时发出警报窗口,以确保用户知道他/她必须选中复选框。

到目前为止我的脚本:

<script type="text/javascript">
$('#terms').on('change', function()
          if ($(this).is(':checked'))
             $('#customButton').removeProp('disabled');
          
          else
             $('#customButton').attr('disabled', 'disabled');
          
       );
</script>

<form id="payment-form" action="chargeCard.php" method="POST" name="payment-form">
<input type="checkbox" id="terms" />
<input type="image"  src="button3.png" id="customButton" value="submit"  disabled="disabled"/>
</form>

【问题讨论】:

您想在点击disabled按钮时触发事件处理程序? 我想触发一个功能,如果按钮被禁用并单击,则会弹出一个警报窗口。 你没有抓住重点,disabled 元素不会触发事件。自己测试一下jsfiddle.net/ym34ud8j 你应该检查这个问题,***.com/questions/3100319/event-on-a-disabled-input 【参考方案1】:

我做了一个Fiddle

代码如下:

html

<form id="payment-form" action="chargeCard.php" method="POST" name="payment-form">
<input type="checkbox" id="terms" />
<input type="button"  id="customButton" value="submit"  class="disabled"/>
</form>

JS

$('#terms').on('change', function()
if ($(this).is(':checked'))
    $('#customButton').removeClass('disabled');

else
    $('#customButton').addClass('disabled');

);

$('#customButton').on('click',function(e)
if( $(this).hasClass('disabled') )
    e.preventDefault();
    alert('Please confirm . . .');
else
    alert('go ahead...');
;
);

总而言之,如果一个元素被“禁用”,那么在它上面发生的所有事件都会被抑制。在我的小提琴中,我使用一种样式“伪造”了一个禁用的按钮,因此点击事件对浏览器仍然可见。

【讨论】:

非常感谢,我编辑了它,但它让我上路了。【参考方案2】:
$("#customButton").click(function()
if !($("#terms").is(':checked'))
 
 alert("Accept terms first!");
 
)

如果您的浏览器无法检测到对已禁用按钮的点击,请在 div 内扭曲按钮并更改功能以点击该 div。

【讨论】:

这对我有帮助。我没有想到将禁用的按钮包装在 div 中以捕获点击事件。

以上是关于单击禁用按钮时生成警报窗口的主要内容,如果未能解决你的问题,请参考以下文章

在 WebBrowser 控件中禁用警报窗口

单击模态提交按钮后打开警报窗口

无法单击网络警报中的“确定”按钮

单击警报内的确定按钮(Selenium IDE)

单击按钮时发出警报?

在 C# 中的窗口窗体应用程序中关闭窗口时发出警报 [重复]