![]() |
Problema javascript (selectionStart) en un textbox desde asp.net Hola a todos, tengo un textbox de servidor personalizado en el que quiero controlar la seleccion de texto. el problema esta que controlo las pulsaciones de teclado a traves de un javascript y miro si el texto esta seleccionado de la siguiente manera: function WriteKey (Ctl, keyCode, Min, Max, SM, SD, Dec, FixDec) { if (document.selection.type != 'None') if (document.selection.createRange().text.length < Ctl.value.length) { inicio=Ctl.selectionStart; fin=Ctl.selectionEnd; } } Esta funcion se le asigna al input(textbox) al hacer el Render de la pagina. _txt.Attributes.Add("onkeypress", "WriteKey(this, event.keyCode, " + _minimo + ", " + _maximo + ", '" + _culture.NumberFormat.NumberGroupSeparator + "', '" + _culture.NumberFormat.NumberDecimalSeparator + "', " + _decimales + ", " + _fijardecimales.ToString().ToLower() + ");"); Ctl se corresponde con mi objeto textbox. El problema es que cuando hago el Ctl.selectionStart o selectionEnd me dice "undefined", he visto este ejemplo igual en otras webs pero la diferencia es que era una funcion javascript llamada directamente en el evento del input desde html. ¿Alguien me puede ayudar por favor? Es urgente... gracias de antemano. Vanbel |
Has visto en depuración que contiene Ctl? Esto no te da problema Ctl.value.length? Otra opcion sería: var txtId=<%=textbox.ClientId %>; function WriteKey (keyCode, Min, Max, SM, SD, Dec, FixDec) { var Ctl=document.getElementById(txtId); if (document.selection.type != 'None') if (document.selection.createRange().text.length < Ctl.value.length) { inicio=Ctl.selectionStart; fin=Ctl.selectionEnd; } } Con esto no tendrías problemas. Pero de todos modos, mirate en depuración que contiene Ctl. Saludos |
Problema javascript (selectionStart) en un textbox desde asp.net Hola, gracias por responderme, te cuento: el textbox sobre el que estoy haciendolo es un textbox personalizado que heredan de Control. En mi objeto Ctl si que tengo el objeto textbox su Id es "Lineas_DataGridLineas__ctl2_TXTCantidad_TXT" y cuando hago Ctl.value.length no tengo problema me devuelve el valor correctamente. Solo me da "undefined" cuando intento hacer Ctl.selectionStart, es como si no reconociera este metodo. En otros ejemplos, yo he visto hacerlo con un input html pero claro haciendolo todo desde cliente. Es decir, lo hacian llamando a la funcion javascript desde el evento del textbox, en este caso el evento del textbox estoy añadiendoselo en el Render: Cita:
Cita:
|
Lee esto http://www.theblueform.com/Home/TheMakingOf.aspx, el articulo "Getting/Setting the Selected Text (Caret Positions) within a Text Box in Internet Explorer and Firefox". Ahí dice que esas propiedades no existen en ie y firefox, y explica una alternativa de hacerlo pero no es directa. Saludos |
javascript (selectionStart) en un textbox desde asp.net Muchas gracias. Me ha servido de mucho. No sabía que internet explorer no acepta estos metodos. :-) |
| La zona horaria es GMT -6. Ahora son las 08:00. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.