2012-02-13 10 views
5

En una entrada de texto, si hay texto, y hace clic para agregar más, el cursor salta automáticamente al inicio. Parece que solo sucede en IE.IE: salto de cursor para comenzar en la entrada

He estado buscando en Google por un tiempo y he intentado con muchos ejemplos que encontré, pero parece que nada funciona. Lamentablemente, la entrada está escrita en un jsp del que no tengo control y creo que la única razón por la que tengo este problema es porque hay algún javascript codificado allí.

<input type="text" id="simpleSearchString" class="text" onfocus="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" onblur="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" value="" maxlength="255" name="searchCriteria.simpleSearchString"> 

Todo lo que quiero hacer realmente es eliminar este salto.

pensé añadiendo el siguiente código habría ayudado, pero no parece hacer nada:

jQuery("input#simpleSearchString").focus(); 

No estoy 100% seguro de lo dev está tratando de lograr con el 'javascript: esto .. .etc 'pero tal vez podría encontrar una manera de eliminarlo.

+0

Las expresiones regulares están desnudando líder espacios en blanco/detrás del campo. Lo más probable es que esto esté causando que el cursor salte, ya que IE asume que el contenido ha cambiado e invalida la posición anterior del cursor. –

+0

¿Qué hay de eliminar el 'onfocus' y' onblur' del elemento de entrada? esto podría hacerse fácilmente con jQuery. –

+0

Gracias Marc B, acabo de descubrir que este javascript se puso en su lugar ya que cualquier espacio en blanco inicial/final estaba afectando los resultados de una búsqueda. Desde el jsp puedo ver que usa algo llamado Gillian

Respuesta

2

Puede matar esos eventos en línea y conectar el suyo;

var el = $("#simpleSearchString"); 
el[0].onfocus = el[0].onblur = null; 

$(el).on("focus blur", function(e) { 
    this.value = $.trim(this.value);  
    if ((e.type === "focus") && this.createTextRange) { 
     var r = this.createTextRange(); 
     r.moveStart("character", this.value.length); 
     r.select(); 
    } 
}); 

(Esto asume su único IE que se requiere para cambiar la posición del cursor)

+0

funcionó una delicia! Muchas gracias. no tienes idea de lo molesto que ha sido. – Gillian

+0

Hola, tengo el mismo problema y usé esta solución; evita que el cursor salte sobre el foco inicial, pero si el usuario hace clic dentro de la entrada, saltará al inicio. ¿Tienes una solución para eso por casualidad? – nocarrier

+0

Esto resolvió el problema donde IE cambiaría la posición del cursor al índice 0 después de escribir algo y luego hacer clic en el cuadro de texto nuevamente. – Moulde

Cuestiones relacionadas