2010-01-27 19 views
7

Estoy trabajando en un sistema de comentarios modales usando jQuery y jQuery UI, pero tengo algunos problemas con el enfoque. Tengo una serie de divs dentro del modal para cambiar entre la conexión y la Añadir comentario, de la siguiente manera:jQuery UI Dialog y Textarea Focus Issue

<div id="modal" title="Loading"> 
<div id="modalContent"></div> 

<div id="modalLogin"> 
    <div class="loginBox"></div> 
    <div class="addCommentBox"></div> 
    <div class="commentReview"></div> 
</div> 
</div> 

En el interior de la div addCommentBox, tengo el código de comentario:

<form action="/comments/add" class="addCommentForm" name="addCommentForm" method="post"> 
    <textarea name="content" class="addCommentContent"></textarea> 
    <button value="Add Comment" type="submit" class="commentPost"/> 
    <button value="Clear Comment" type="submit" id="clearComment"/> 
</form> 

La cuestión es que aproximadamente la mitad de las veces después de abrir el cuadro de diálogo, el área de texto dentro del addCommentBox div no reacciona a las entradas del teclado cuando se selecciona. El mouse funciona correctamente y permitirá que se seleccione el texto, pero el control del teclado no hace nada.

No tengo detectores de eventos en el área de texto. Tengo algunos en los botones, pero están apuntando solo a los botones.

Lo único que sucede en el HTML parece ser el hecho de que cada vez que hago clic en el modal, el índice z aumenta para el div modal global. Establecí el addCommentBox div para tener un índice z de 9999, mayor que el índice z del modal.

Cualquier sugerencia o indicaciones para la investigación sería muy apreciada. ¡Gracias!

+1

proporcione un error de ejemplo: http://jsfiddle.net/ – Markus

+1

usted desea agregar qué versión de jQuery UI, qué versión de jQuery. – potatopeelings

+0

es posible que desee comprobar el índice z de la superposición demasiado $ (". Ui-widget-overlay"). Css ("z-index") – potatopeelings

Respuesta

1

Si está sucediendo "la mitad del tiempo", es difícil. Pruébelo en otros navegadores para ver si sucede lo mismo.

0

¿Cómo se esconde loginBox y commentReview? Si usa opacidad, es posible que algo que no pueda ver esté sobre el área de texto.

No verá elementos con una opacidad de 0, pero todavía están allí en todos los demás aspectos. Aceptarán los eventos del mouse, impidiendo que haga clic en el área de texto.

Si puede ver el área de texto, entonces no parece un problema de índice Z para mí.

0

Al abrir el cuadro de diálogo, intente enfocar el cuadro de texto durante la función "abrir".

 
$('#modal').dialog({ 
    open: function() { 
     $('textarea[name=content]').focus(); 
    } 
}); 
0

Parece que el problema es con algo más en la página. ¿Ha probado esto al poner la característica anterior en su propia página separada de todas las otras funcionalidades?

0

Intente establecer la propiedad TABINDEX del área de texto si no está configurado.