通过CSS属性设置元素属性,是否可能?

时间:2010-12-08 01:27:37

标签: jquery html css xhtml properties

css代码

input.long{
    width:50%;
    max-length:50;
}
input.number{
    width:4em;
    max-length:4;
}

应用html代码,

Title : <input type='text' class='long'/>
Phone : <input type='text' class='short'/>-<input type='text' class='short'/>-<input type='text' class='short'/>

脚本(简单地使用jquery)在css中应用属性,

$('input:text.long').attr('maxlength',$('input:text.long').css('max-length'));
$('input:text.short').attr('maxlength',$('input:text.short').css('max-length'));

在IE上工作但不能在其他浏览器上工作。 我可以在主流浏览器上通过css属性设置单个或多个设置元素属性吗?

3 个答案:

答案 0 :(得分:2)

您的代码很可能无效,因为“max-length”不是有效的CSS属性。我的猜测是,当您尝试按该名称读取CSS属性时,jQuery返回false。然后,此false被解释为0,它将应用于输入maxlength

maxlengthinput的有效属性,它只需要一个值的整数。只要你能从CSS属性中获得它,就没有理由它不起作用。例如,如果您改为计算CSS宽度并将其解析为整数,则可以将输入的maxlength设置为该值。 http://jsfiddle.net/sdq7H/

答案 1 :(得分:1)

我不认为这是正确的

max-length错误

$('input:text.long').css('max-length')

答案 2 :(得分:1)

我想您想在CSS中执行此操作,以便您可以从一个位置控制所有这些文本框的最大长度?大多数服务器端语言都为此提供了可重用的控件。 CSS是这项工作的错误工具。如果你必须在客户端进行,那么只做这样的事情有什么问题......

$('input:text.long').attr('maxlength', 50);
$('input:text.short').attr('maxlength', 4);