0

我正在开发一些网络接口,我想将一些 INPUT 元素转换为不可编辑/不可更改但仍显示输入值。这怎么办?

至少在 Chrome 中,禁用属性使输入的值消失(未标记的复选框、未填充的单选按钮),但只读标签允许用户不断更改值。为什么?这是 Chrome 的东西吗?到目前为止,简单地不允许交互但保持和显示预选值的最佳方法是什么?

编辑:我正在使用 jQuery 的

$('#deForm :input').attr('readonly',true);

$('#deForm :input').attr('disabled',true);

对于这个测试。两者似乎都处理得很好,因为 GUI 会隐藏输入元素。但它们都没有显示我预期的功能

EDIT2:我还尝试将 'readonly' 和 'disabled' 作为 jQuery 中的第二个参数而不是 'true' 但它具有相同的效果

EDIT3:我也尝试添加到只读。

 $('#deForm :input').attr('readonly',true);
 $('#deForm :input').keypress(function(event){
      event.preventDefault();
 });

但行为与普通只读相同

4

2 回答 2

2

这是readonlydisabled属性的默认行为。您可以使用preventDefault事件对象的方法。

<input type='text' value='something'/>

$('input[type=text]').keypress(function(event){
    if (something is true) {
       event.preventDefault()
       // or return false
    } else {
       //
    }
}) 

http://jsfiddle.net/2fKjX/

于 2012-08-14T23:43:57.310 回答
0

我知道你说 readonly 没有用,但我猜你在语法上犯了一个错误。你想要的是这样的:

<input type="text" readonly="readonly" value = "Hi ima txtbox" id="whatever" class="whatever" />
于 2012-08-14T23:53:49.807 回答