Foros del Web » Programando para Internet » ASPX (.net) »

Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

Estas en el tema de Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit en el foro de ASPX (.net) en Foros del Web. Hola, pues esa es mi duda (un formulario, que ejecuta el submit tanto si se hace click en el botón apropiado, como si se aprieta ...
  #1 (permalink)  
Antiguo 08/05/2007, 05:32
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

Hola,

pues esa es mi duda (un formulario, que ejecuta el submit tanto si se hace click en el botón apropiado, como si se aprieta enter). Seguro que es muy sencillo, y tal vez se haga desde HTML, ¡Pero no he encontrado cómo hacerlo! Si alguien lo sabe le agradecerér me lo enseñe.

Gracias
  #2 (permalink)  
Antiguo 08/05/2007, 09:28
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

va a depender de como lo quieras controlar, si quieres que al escribir sobre un textbox presiones enter o que sin estar sobre algun control que al presionar enter se ejecute algo.

Como lo necesitas?

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 08/05/2007, 12:25
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

Lo primero, que al apretar enter estando sobre un textbox se lance el submit.

Última edición por programadornet; 25/05/2007 a las 05:48
  #4 (permalink)  
Antiguo 25/05/2007, 05:49
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

¿Nadie sabe nada? ¿No será algo "fácil" como asociar el foco por defecto a dicho control (un botón que habrá que hará lo mismo que el Enter. En definitiva como la página de Google) o algo así?

PD: En el anterior mensaje puse checkbox cuando quería poner textbox. Editado.
  #5 (permalink)  
Antiguo 25/05/2007, 06:05
Avatar de belenxi  
Fecha de Ingreso: mayo-2007
Ubicación: Alicante, España
Mensajes: 8
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

Sí, es justo eso

Mira, vete al aspx.cs del web form en el que estés trabajando, y en el método Page_Load, añade lo siguiente:


protected void Page_Load(object sender, EventArgs e)
{
Button1.Focus();
}



En vez de Button1, será el nombre de tu botón, claro...

Espero que te haya servido, saludos
  #6 (permalink)  
Antiguo 06/06/2007, 02:10
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

Cita:
Iniciado por belenxi Ver Mensaje
Sí, es justo eso

Mira, vete al aspx.cs del web form en el que estés trabajando, y en el método Page_Load, añade lo siguiente:


protected void Page_Load(object sender, EventArgs e)
{
Button1.Focus();
}



En vez de Button1, será el nombre de tu botón, claro...

Espero que te haya servido, saludos
Gracias. Pero no tengo aspx.css. Lo he puesto en el Page_Load de la página, y cuando pulso enter después de haber escrito en un campo de texto, "parece" que se recarga pero la página, sin pulsarse enter.

No lo está cogiendo bien... Si pulso fuera del campo de texto, y después enter, entonces sí. Pero a mí me gustaría que fuera como en el google: escribies, enter, y listo.
  #7 (permalink)  
Antiguo 06/06/2007, 08:46
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 3 meses
Puntos: 9
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

Hola programadornet!
Para tu propósito, te aconsejo lo siguiente:
Agrupa todos los textbox y el botón en cuestión, dentro de un mismo control PANEL (<asp:Panel...>)
Hasta aquí, tu página no debería haber sufrido ningún cambio.
Luego, tu control PANEL tiene una propiedad llamada "DefaultButton", que debes asignarle el ID del control BUTTON. De esta forma, cuando se le de al ENTER desde cualquier control dentro de ese panel, se ejecutará por defecto el code de ese botón.
Saludos!
__________________
..:: moNTeZIon ::..
  #8 (permalink)  
Antiguo 06/06/2007, 10:19
 
Fecha de Ingreso: mayo-2004
Mensajes: 85
Antigüedad: 19 años, 11 meses
Puntos: 1
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

y si lo haces por JavaScript algo así:




Cita:

function presiona(event)
{
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
//13 corresponde al intro
if (keyCode == 13) {
alert("ha presionado intro");
}


y esta función se la añades al textBox al evento onKeyPress

saludos.
  #9 (permalink)  
Antiguo 06/06/2007, 10:42
 
Fecha de Ingreso: abril-2007
Mensajes: 160
Antigüedad: 17 años
Puntos: 1
Re: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

¡Muchas gracias! Es justo lo que buscaba (emplearé el primer método pues es más sencillo y directo que el segundo, en el que ya pensé como opción segura pero poco elegante y "estándar").

PERO, siempre hay un pero, jej, ya puestos, me gustaría que al pulsar "intro" se realizaran las mismas acciones javascript que se realizaban antes al pulsar con el ratón el botón (autorrellenado de campo de texto hasta una longitud máxima, etc.). ¿Es esto posible? Es obvio que si no se puede, se puede utilizar la solución del capturar la tecla "intro".

Por otro lado, a modo de curiosidad y al mismo tiempo tal vez para ayudar a resolver lo anterior, comento lo siguiente: he visto que el ASP.NET traduce el <asp:panel ...> por un div, con un onKeyPress y un FireEvent como el siguiente:

<div onkeypress="javascript:return WebForm_FireDefaultButton(event, 'BtnAcceder')">
  #10 (permalink)  
Antiguo 01/08/2008, 17:00
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años
Puntos: 3
Respuesta: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

¿Y cuando se quiere hacer lo mismo en los casos que el botón que se desea ejecute el submit está dentro de un control de datos como puede ser un DetailsView?

Entonces, ¿cómo lograr el mismo objetivo?

Es decir,...

Yo tengo formularios para actualizar y/ó insertar datos a través de DetailsView, generalmente, y en los FooterTemplates tengo colocados los botones de [Insertar] ó [Actualizar] datos tecleados.
Y desearía que estando dentro de estos formularios, al pulsar la tecla [Enter], se accionará dichos formularios.

He probado a poner el DetailsView dentro del Panel y, en la propiedad DefaultButton, el ID del botón de envío del DetailsView. Pero me da el siguiente error:

"DefaultButton de 'panel_principal' debe ser el identificador de un control del tipo IButtonControl."

¿¿Alguien sabe cómo podría resolver esto??
__________________
Saludos,

zacktagnan.
=================================================
  #11 (permalink)  
Antiguo 03/08/2008, 17:42
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años
Puntos: 3
Respuesta: Asociar tecla intro a un botón ("Buscar", por ejemplo) que hace submit

Bueno, visto que nadie proponía una solución a lo que planteaba (como me ha pasado otras veces ...), volví a buscar la solución a través de Google, cosa que hice antes de plantear ó seguir el hilo del tema abierto.

Antes de presentar mi caso, ya había probado una solución planteada en este enlace:

http://mespinozah.spaces.live.com/blog/cns!66F8D617FBB779D2!221.entry


Para concretar, las páginas de mi sitio web usan Master Page y lo que trato es que el botón de los DetailsView que empleo para insertar / actualizar datos sea el que acciona el formulario al pulsar la tecla [Enter], como en los formularios HTML normales.

Así que apliqué la solución planteada en el "Tercer Intento" del "Escenario 2", dentro del Page_Load, es decir:

Código:
' PARA Vb

 If Not Page.IsPostBack Then
   Me.Form.DefaultButton = Button2.UniqueID
 End If
Código:
// PARA C#

 If (!Page.IsPostBack)
 {
   this.Form.DefaultButton = Button2.UniqueID;
 }
Antes de esto, como el botón al que quiero convertir como DefaultButton está dentro de un control DetailsView, antes de asignarlo a dicha propiedad del Form, tengo que llegar a él:

Código:
' PARA Vb

'Antes del Page_Load

   Dim Button2 As Button

'Dentro del Page_Load

      Button2 = DetailsView_ID.FindControl("Button2")
Código:
// PARA C#

//Antes del Page_Load

   protected System.Web.UI.WebControls.Button Button2;

//Dentro del Page_Load

   Button2 = DetailsView_ID.FindControl("Button2") as Button;

Pero no me daba el resultado deseado. Por eso planteé mi problema en este tema abierto.


Al no recibir respuesta, volví a buscar como he dicho, y en otro foro volví a encontrar la misma solución. Por lo que volví a probarla y ahora si que va bien, aunque mejor fuera del condicional que revisa que la página no viene de un Post, por lo que me queda tal que así:

Código:
' PARA Vb

 Me.Form.DefaultButton = Button2.UniqueID
Código:
// PARA C#

 this.Form.DefaultButton = Button2.UniqueID;

Pues nada más, ... A quién le pueda servir ...
__________________
Saludos,

zacktagnan.
=================================================
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:54.