none
problemas en un campo con el enter RRS feed

  • 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
    martes, 7 de abril de 2009 19:04

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
    martes, 7 de abril de 2009 22:52

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
    martes, 7 de abril de 2009 19:44
  •         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
    martes, 7 de abril de 2009 19:55
  • Hola Ajesus, gracias por la información pero el problema es que mi formulario es web y no forms entonces no puedo utilizar  la opción que me das??? sabes en mi caso que puedo hacer????

    Gracias
    sandra
    martes, 7 de abril de 2009 20:05
  • 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
    martes, 7 de abril de 2009 21:57
  • 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()");

     

     

    martes, 7 de abril de 2009 21:57
  • 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

    martes, 7 de abril de 2009 22:25
  • 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
    martes, 7 de abril de 2009 22:52