在单击禁用复选框时运行函数
run function onclick of disabled checkbox
我有一个复选框,我不希望用户直接访问。我希望他们接受一些条款。为此,我希望他们能够单击一个禁用的复选框,该复选框会打开包含术语的迷你弹出窗口(不选中该框),以便读者可以阅读并接受它们。一旦他们接受它们,弹出窗口将关闭,复选框将被选中。我遇到的问题是我无法弄清楚在单击禁用复选框时运行函数。
处理禁用元素的单击确实很棘手......但无论如何,我认为这不是理想的用户体验。 如果复选框被禁用,一些用户会看到它,甚至不愿意尝试单击它。 相反,请考虑截获单击事件并使用 preventDefault 将其用于您自己的目的。
<input type='checkbox' id="cb" name="cb" />
$(document).ready(function() {
$("#cb").click(function(e) {
// cancel click event so that checkbox remains unchecked
e.preventDefault();
// display popup here, then manually check the checkbox if needed
}
});
$('#chk').click(function () {
if (confirm('Accept')) {
$(this).attr('checked', 'checked');
}
else {
$(this).attr('checked', false); }
});
禁用
的复选框可能无法正确处理点击事件,并且将显示为"已禁用"。
但是,您可以尝试以下操作:
- 在复选框中添加属性以存储是否显示弹出窗口(例如,data-popup="0")
- 处理复选框上的 onClick 事件
- 如果显示弹出窗口(data-popup="1"),只需返回 true 以允许用于检查它
- 如果未显示弹出窗口(data-popup="0"),则阻止默认行为,设置 data-popup="1" 并显示带有条款和条件的弹出窗口
根据弹出窗口的设计,另一项改进可能是在该弹出窗口中添加一个新复选框,当用户阅读条款和条件时,他可以直接从弹出窗口接受条款和条件。如果这样做,则需要处理弹出窗口中复选框上的单击事件,并自动选中页面上的复选框。
@dbaseman
这是我的代码。看一看。在这里,我在div 上收到警报,但在复选框上没有收到警报。
<html>
<head>
<script type="text/javascript" src="jQuery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#checkbox, #hello").click(function(){
alert("hello");
});
});
</script>
</head>
<body>
<div id="checkbox">
<p> hello</p>
<input type="checkbox" id="hello" disabled="disabled" />
</div>
</body>
</html>
相关文章:
- jQuery在元素的上下文中运行函数
- Promise函数在.then之后未运行函数化
- 在.append之后运行函数
- 在on.change事件之后运行函数
- 如果文本或值以字符开头,请运行函数
- 如何在节点模块中从命令行运行函数
- 在Fancybox中提交表单时运行函数
- Don'如果字段为空,则不运行函数
- Javascript:如何在页面重新加载后运行函数
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 运行函数ifsuccess($.ajax)有200个状态代码
- JavaScript只有在最后一次被调用时才运行函数
- 在异步AJAX调用完成后,通过变量运行函数
- ng中继器打印结果0;当我运行函数时
- 谷歌扩展:如何在弹出窗口中按下按钮时在我的javascript文件中运行函数
- 获取对在 JavaScript 中运行函数的对象的引用
- 运行函数时出错
- 节点.js子进程中的运行函数
- $.getJSON 在返回数据后不会运行函数
- 如果onchange为true,如何运行函数