2010-12-08 171 views
0

CSS代碼通過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屬性,

在IE上而不是工作
$('input:text.long').attr('maxlength',$('input:text.long').css('max-length')); 
$('input:text.short').attr('maxlength',$('input:text.short').css('max-length')); 

工作其它瀏覽器。 可以通過主要瀏覽器上的css屬性設置單個或多個設置元素屬性嗎?

+0

設置輸入類型的最大長度是默認//要在運行時設置 – kobe 2010-12-08 01:46:18

+1

爲什麼爲什麼你必須從CSS設置? – 2010-12-08 01:53:24

回答

2

你的代碼很可能不起作用,因爲「最大長度」不是一個有效的CSS屬性。我的猜測是,當您嘗試通過該名稱讀取CSS屬性時,jQuery返回false。這false然後被解釋爲0它應用於輸入的maxlength

maxlengthinput的有效屬性,它需要的僅僅是一個值的整數。只要你能從CSS屬性中獲得它,沒有理由不起作用。例如,如果您改爲計算CSS寬度並將其解析爲整數,則可以將輸入的最大長度設置爲該值。 http://jsfiddle.net/sdq7H/

1

我不認爲這是正確的

最大長度是錯誤的

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

我想你想在CSS中這樣做,以便你可以從一個點控制所有這些文本框的最大長度?大多數服務器端語言爲此提供了可重用的控件。 CSS是這項工作的錯誤工具。如果你必須這樣做的客戶端,什麼是隻有做這樣的事情的問題...

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