En ce moment, j'ai ce DIV avec un formulaire d'inscription centré sur la page. Le contenu de la DIV provient d'une page ascx. C'est bien fait. Maintenant, si l'utilisateur essaie de renseigner un nom qui n'est pas unique, un message d'erreur est ajouté par un certain jQuery à côté du champ du nom d'utilisateur. Cela brise la disposition de la DIV, puisque le contenu est maintenant plus large qu'avant. J'ai donc fait des recherches sur Google, mais je ne trouve pas de solution pour cela.Comment redimensionner automatiquement un div à la taille de son contenu lorsque le contenu de la div a changé?
Quelqu'un peut-il me aider à trouver une belle façon de faire (pseudo HTML/js):
<div id="myCenteredDiv" onChangeContents="resizeToNewSize()">
<!-- div contents -->
</div>
<script type="text/javascript">
function resizeToNewSize() {
$("#myCenteredDiv").animateToSize($("#myCenteredDiv").contentWidth,
$("#myCenteredDiv").contentHeight);
}
</script>
Je cherche la méthode "onChangeContents" (et/ou de l'événement) et le « div. Propriété "contentWidth".
Merci beaucoup de m'avoir aidé!
mise à jour: en essayant d'expliquer le problème plus clairement
Disons que je DIV:
<div id="myDiv">
<form ...>
Enter your name: <input id="txtYourName" type="text" name="YourName" value="" />
<span id="errorYourName"></span>
<input type="submit" ... />
</form>
</div>
Et disons que j'ai cet extrait de jQuery:
$(document).ready(function() {
$("#txtYourName").live("blur", function() {
if (validateInput($("#txtYourName").val())) {
$("#errorYourName").html("");
// entry 1
} else {
// entry 2
$("#errorYourName").html("This name is not valid.");
}
});
});
... où validateInput(value)
renvoie true
pour une valeur valide.
Eh bien maintenant. Le plugin SimpleModal prend le div et le place au centre de la page, avec une certaine largeur et hauteur il lit en quelque sorte le contenu de la div. Donc, la div n'est pas plus large que la case d'entrée, puisque l'intervalle est vide pour le moment. Lorsque la boîte de saisie perd le focus, un message d'erreur est placé dans la plage. Cela casse alors la disposition de la div.
Je pourrais mettre du code dans entry 1
qui redimensionne la div avec une animation à une certaine taille lorsque le message d'erreur a été effacé, et code dans entry 2
qui redimensionne la div à une plus grande taille de sorte que le message d'erreur s'adaptera.
Mais ce que je préfèrerais, c'est de savoir si le contenu de la div a changé, et d'ajuster le div en conséquence, animé et automatiquement.
Des idées? Merci encore.
avez-vous essayé de définir la propriété css mid-width au lieu de la propriété width? – kemiller2002
Cette div est-elle limitée par une autre div de largeur fixe? – Lazarus
Comment est le style DIV? Utilise-t-il des dimensions fixes? – Achilles