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属性设置单个或多个设置元素属性吗?
答案 0 :(得分:2)
您的代码很可能无效,因为“max-length”不是有效的CSS属性。我的猜测是,当您尝试按该名称读取CSS属性时,jQuery返回false
。然后,此false
被解释为0
,它将应用于输入maxlength
。
maxlength
是input
的有效属性,它只需要一个值的整数。只要你能从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);