2010-12-08 4 views
0

le code CSSDéfinir les attributs d'élément par propriété CSS, est-ce possible?

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

pour appliquer le code html,

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

un script (simplement en utilisant jquery) pour appliquer l'attribut dans css,

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

travail sur IE mais fonctionne pas d'autres navigateurs. Puis-je attribuer un ou plusieurs attributs d'élément par propriété css sur les principaux navigateurs?

+0

régler la longueur maximale du type d'entrée est par défaut // Pourquoi voulez-vous mettre à l'exécution – kobe

+1

Pourquoi devez-vous définir cela à partir de CSS? –

+0

@josh, il a donné cela comme valeur css et en essayant de préparer cela via .css // – kobe

Répondre

2

Votre code le plus probable ne fonctionne pas parce que « longueur_maximale » n'est pas un attribut CSS valide. Ma supposition est jQuery renvoie false lorsque vous essayez de lire une propriété CSS par ce nom. Ce false est alors interprété comme 0 qui est appliqué aux maxlength de l'entrée.

maxlength est un attribut valide pour un input, et tout ce dont il a besoin est un entier pour une valeur. Tant que vous pouvez obtenir cela à partir d'un attribut CSS, il n'y a aucune raison que cela ne fonctionne pas. Par exemple, si vous prenez la largeur CSS calculée et que vous l'analysez en entier, vous pouvez définir la longueur max de l'entrée sur cette valeur. http://jsfiddle.net/sdq7H/

+0

Je vois, mais j'ai vu ce lien (http://www.greytower.net/archive/articles/customcss.html) pour essayer ma question. – ukjinplant

+0

J'ai regardé le lien. Peut-être que vous vouliez utiliser 'max-width'? Il n'y a aucune mention de "longueur maximale" dans cet article. – stevelove

1

Je ne pense pas que ce soit correct

longueur_maximale est erroné

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

Je suppose que vous voulez faire cela en CSS afin que vous puissiez contrôler la longueur maximale de toutes ces zones de texte d'un point? La plupart des langages côté serveur offrent des contrôles réutilisables à cette fin. CSS est le mauvais outil pour ce travail. Si vous devez le faire sur le côté client, quel est le problème avec juste faire quelque chose comme ça ...

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