我正在设计一个表单,如果它有某个类,则用户不应该能够与任何输入进行交互。由于各种原因,我想避免使用"disabled"属性。我试图阻止焦点事件的默认行为,但它不起作用。我在最近版本的Firefox、Chrome和Android中进行了测试。我尝试了各种事件组合,如"click change touchstart focus focusin"。我尝试在处理程序中放置"return false;"。是否有人知道这是为什么,以及如何使其工作?
您可以在http://jsfiddle.net/54Xka/上看到一个示例。
编辑:这将用于主要面向移动浏览器的站点。当模态对话框显示时,我计划禁用输入。模态对话框是使用我自己的代码实现的。它是一些非常简单的东西,可以显示和隐藏一个div。
编辑2:这是我现在的内容:
<!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,或类似于jQuery UI对话框小部件的内容,或者实际上使用jQuery UI对话框小部件来实现对话框。