在jquery中将文本框设置为只读,将背景颜色设置为灰色

时间:2014-01-10 02:03:19

标签: javascript jquery jsp background-color

美好的一天,

我想在jsp中将一个文本框变为readonly,并将其背景颜色设置为灰色,如Jquery中的disable。以下是我的代码:

if(a)
  $('#billAccountNumber').attr('readonly', 'true');

我不喜欢使用attr('disable', 'true');,因为当我提交表单时,该值将变为null。任何想法而不是写第二行代码来改变风格?

5 个答案:

答案 0 :(得分:41)

有两种解决方案:

访问此jsfiddle

in your css you can add this:
     .input-disabled{background-color:#EBEBE4;border:1px solid #ABADB3;padding:2px 1px;}

in your js do something like this:
     $('#test').attr('readonly', true);
     $('#test').addClass('input-disabled');

希望得到这个帮助。

另一种方法是使用一些注释中提到的隐藏输入字段。但请记住,在后端代码中,您需要确保在正确的方案中验证此新隐藏的输入。因此我不推荐这种方式,因为如果它处理不当会产生更多错误。

答案 1 :(得分:7)

根据你的问题,这就是你能做的事情

<强> HTML

<textarea id='sample'>Area adskds;das;dsald da'adslda'daladhkdslasdljads</textarea>

<强> JS / Jquery的

$(function () {
    $('#sample').attr('readonly', 'true'); // mark it as read only
    $('#sample').css('background-color' , '#DEDEDE'); // change the background color
});

或在你的css中添加一个具有所需样式的类

$('#sample').addClass('yourclass');

<强> DEMO

如果要求不同,请告诉我

答案 2 :(得分:1)

如果您的浏览器支持,则可以使用CSS3 :read-only selector

input[type="text"]:read-only {
    cursor: normal;
    background-color: #f8f8f8;
    color: #999;
}

答案 3 :(得分:0)

为什么不将帐号放在div中。根据需要设置样式,然后在包含帐号的表单中隐藏输入。然后,当表单被提交时,该值应该通过而不是null。

答案 4 :(得分:0)

可以添加如下所示的禁用,并可以获取提交数据。像这样的东西.. DEMO

HTML

<input type="hidden" name="email" value="email" />
<input type="text" id="dis" class="disable" value="email"   name="email" >

JS

 $("#dis").attr('disabled','disabled');

CSS

    .disable { opacity : .35; background-color:lightgray; border:1px solid gray;}