2010-09-16 61 views
0

我目前正在尝试查看是否有办法禁用输入但不允许输入获得焦点。我这样做是因为我仍然需要后端来检索数据,但不允许用户在特定时间编辑输入字段。由于禁用不会将数据返回到不起作用的后端。 我目前这样做的方式是,当用户按下提交时,我删除禁用的属性,但这使得它们在下一页加载前几秒钟显示正常。任何建议将是巨大的(我的下一个步骤将被添加HTML只是无法获得焦点而不是禁用

background-color: #F2F2F2 !important; 
color: #C6C6C6; 
border-color: #ddd; 

但由于每个浏览器做不同的看法,我宁愿一个解决方案,并没有这样做。

回答

1

只是拦截onfocus事件并发送blur()事件,这样一来,如果有人着重于它,输入立即散。

​document.getElementById('input').onfocus = function() { this.blur(); }​​​​​

下面是一个例子
http://jsfiddle.net/HkbTH/

+0

你真了不起,谢谢! – Craig 2010-09-17 16:27:56

2

禁止输入,并添加另一种输入类型=具有相同的名称隐藏

1

考虑使用readonly,这意味着正是这样的事情。

<input type="text" name="foo" readonly> 
<input type="text" name="foo" readonly="readonly"/> <!-- XHTML syntax --> 

document.getElementsByName('foo')[0].readonly= true; 

A readonly字段可以集中,所以用户仍然可以例如。选择并复制文本。但它不能被编辑,并且渲染可能看起来是半禁用的。