Por el momento, tengo este DIV con un formulario de registro centrado en la página. Los contenidos del DIV provienen de una página ascx. Esto se hace muy bien. Ahora, si el usuario intenta completar un nombre que no es exclusivo, se agrega un mensaje de error junto con jQuery al campo de nombre de usuario. Esto rompe el diseño del DIV, ya que los contenidos ahora son más amplios de lo que solían ser. Así que he buscado mi camino en esto, pero no puedo encontrar una solución para esto.¿Cómo cambio el tamaño de un div automáticamente al tamaño de su contenido cuando el contenido del div ha cambiado?
¿Puede alguien ayudarme a encontrar una buena manera de hacer esto (seudo HTML/JS):
<div id="myCenteredDiv" onChangeContents="resizeToNewSize()">
<!-- div contents -->
</div>
<script type="text/javascript">
function resizeToNewSize() {
$("#myCenteredDiv").animateToSize($("#myCenteredDiv").contentWidth,
$("#myCenteredDiv").contentHeight);
}
</script>
Busco el método "onChangeContents" (y/o evento) y el "div. ContentWidth "propiedad.
¡Muchas gracias por ayudarme!
actualización: tratar de explicar el problema con mayor claridad
Digamos que tengo este 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>
Y digamos que tengo este fragmento 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.");
}
});
});
... donde validateInput(value)
devuelve true
para un valor válido.
Bien ahora. El complemento SimpleModal toma el div y lo coloca centrado en la página, con un cierto ancho y alto que de alguna manera se lee fuera del contenido del div. Entonces el div no es más ancho que el cuadro de entrada, ya que el tramo está vacío en este momento.
Cuando el cuadro de entrada pierde el foco, se coloca un mensaje de error en el tramo. Esto luego rompe el diseño del div.
Podría poner el código en entry 1
que redimensiona la parte posterior del div con una animación de cierto tamaño cuando se borra el mensaje de error, y codifica en entry 2
que cambia el tamaño del div a un tamaño mayor para que el mensaje de error encaje.
Pero lo que más me gustaría es una forma de saber si los contenidos dentro del div han cambiado, y ajustar el div en consecuencia, animado y automáticamente.
¿Alguna idea? Gracias de nuevo.
¿Ha intentado establecer la propiedad css de ancho medio en lugar de la propiedad width? – kemiller2002
¿Este div está delimitado por otro div de ancho fijo? – Lazarus
¿Cómo se diseña el DIV? ¿Está usando dimensiones fijas? – Achilles