Principales respuestas
problemas en un campo con el enter

Pregunta
-
Hola a todos, vengo a solicitarles su ayuda ya que tengo un problema con mi formulario, todo lo guarda bien, pero tengo un campo que guardar el texto bien pero el problema es que está aceptando enter y lo guarda tambien, como puedo hacer para validar q no acepte enter???
Gracias
sandra
Respuestas
-
Hola muchas gracias a todos, me guie de la solución de Roger y efectivamente toca usar javascript
function pulsar(e) { tecla=(document.all) ? e.keyCode : e.which; i
f (tecla==13) return false; }
y efectivamente no permite digitar enter, además que el usuario sabe muy bien que no debe digitar el enter, ya está comprobado que se digita accidentalmente.
Mil gracias
sandra- Marcado como respuesta sandraguerrero martes, 7 de abril de 2009 22:54
Todas las respuestas
-
Supongo que estas trabajando con textbox. Lo que yo te recomendaría es controlar cualquiera de 2 eventos: keypress o keydown, para determinar si la tecla presionada fue enter y en caso afirmativo, lo unico que haces es eliminar ese caracter. Te dejo la base de los ejemplos:
evento keypress:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((int)e.KeyChar == 13) { //codigo } }
en este evento compruebas que el codigo ascii sea 13 (enter) y codificas la lógica necesaria.
evento keydown:
private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //codigo } }
con este es mas facil, solo tienes que determinar si es un enter y ya.
En la teoría, la teoría es igual a la práctica; en la práctica no -
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((int)e.KeyChar == 13) { e.Handled = true; } }
continuando con la respuesta anterior, creo que ese es el mejor método.
con el handled indicas que ya has manejado el evento por ti misma y que no quieres que se realice ninguna otra cosa.
En la teoría, la teoría es igual a la práctica; en la práctica no- Propuesto como respuesta el_arquero martes, 7 de abril de 2009 19:59
-
-
bueno sandraguerrero, realmente no he probado esta solución, puedes intentar esto:
protected void Button1_Click(object sender, EventArgs e) { this.TextArea1.Value = this.TextArea1.Value.Replace((char)13, ' '); }
lo que se haces es reemplazar todos los enter con un espacion en blanco y asignar esa nueva cadena al textArea. No he probado esta solucion, por lo que no se si realmente funciona.
En la teoría, la teoría es igual a la práctica; en la práctica no -
si necesitas validar el enter en web, debes hacerlo con javascript
ejemplo
function
validar()
{
tecla = event.keyCode;
if(tecla==13)
{
return;
}
}
y al textBox en el load de la pagina, le asignas la funcion en el evento keydown
TextBox1.Attributes.Add(
"onkeydown", "validar()");
-
Sandra, una opción es que bloquees el caracter enter como te han comentado, pero esto confundira al usuario sobre todo si el objeto del formulario es un textbox multiline o un textarea, yo te recomiendo que antes de guardar a la bd, hagas un replace y elimines el caracter enter. puede ser:
TextBox1.Text.Replace(
"\r\n","");
saludos
rolivas -
Hola muchas gracias a todos, me guie de la solución de Roger y efectivamente toca usar javascript
function pulsar(e) { tecla=(document.all) ? e.keyCode : e.which; i
f (tecla==13) return false; }
y efectivamente no permite digitar enter, además que el usuario sabe muy bien que no debe digitar el enter, ya está comprobado que se digita accidentalmente.
Mil gracias
sandra- Marcado como respuesta sandraguerrero martes, 7 de abril de 2009 22:54