【发布时间】:2011-07-18 22:40:21
【问题描述】:
我正在尝试设计一个表单,如果它具有某个类,则用户不应该能够与任何输入进行交互。由于各种原因,我想避免使用“禁用”属性。我试图阻止焦点事件的默认设置,但它不起作用。我在最新版本的 Firefox、Chrome 和 Android 中对此进行了测试。我尝试了各种事件组合,例如“单击更改触摸启动焦点聚焦”。我试着把“return false;”在处理程序中。有谁知道为什么会发生这种情况以及如何使其发挥作用?
<!DOCTYPE html>
<html><head>
<title>input test</title>
</head>
<body>
<form class="disabled">
<input type="text">
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(".disabled :input").bind("focus", function(e) {
e.preventDefault();
});
</script>
</body></html>
你可以在http://jsfiddle.net/54Xka/看到一个例子
编辑:这将在一个主要用于移动浏览器的网站上。我计划在显示模式对话框时禁用输入。模态对话框是使用我自己的代码实现的。显示和隐藏 div 是非常简单的事情。
编辑 2:这是我现在拥有的:
$(".disabled :input").live({
focus: function() {
$(this).blur();
},
change: function(e) {
e.preventDefault();
}
});
它有一些小的美学问题,但它有效。当我有更多时间时,我可能会尝试使用透明 gif 的 jfriend00 的想法,或者类似于 jQuery UI 对话框小部件所做的事情,或者可能实际上使用 jQuery UI 对话框小部件来实现对话框。
【问题讨论】:
标签: javascript jquery