Foros del Web » Programando para Internet » Javascript »

ayuda con replace, no me funciona al dar enter

Estas en el tema de ayuda con replace, no me funciona al dar enter en el foro de Javascript en Foros del Web. buenas señores, tengo un form, un input y un botón. lo que necesito es que si el usuario ingresa en el input tildes por ejemplo, ...
  #1 (permalink)  
Antiguo 15/10/2010, 12:35
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
ayuda con replace, no me funciona al dar enter

buenas señores, tengo un form, un input y un botón.
lo que necesito es que si el usuario ingresa en el input tildes por ejemplo, las quite y las envíe a otra página. el código que tengo ahora me funciona, he utilizado el replace de JS, pero me funciona únicamente al enviar los datos con el boton, pero si el usuario escribe en el input y en vez de enviar con el botón da enter, me envia la cadena sin quitar las tíldes.

ejemplo, si se ingresa: á, en la otra página recibo: á.

llevo dos días probando de todo y nada, por lo que acudo a su ayuda.

estoy trabajando esto en php, el input está en principal.php y lo manda a busqueda.php

código php:
Código:
<form method="post" name="form1" id="ob_clave" action="busqueda.php?action=buscar" onsubmit="return Buscar()">
                          <input name="ob_clave" id="ob_clave" type="text" value="<?php echo $ob_clave?>"  style="width: 95%;" onchange="this.value=this.value.replace(/á/ig,'a').replace(/é/ig,'e').replace(/í/ig,'i').replace(/ó/ig,'o').replace(/ú/ig,'u').replace(/ñ/ig,'n').replace(/[^a-z\d ]+/ig,'');" />
                          <div style="margin-left:auto; margin-right:auto; width:50%; text-align:center">
                            <button class="Button" type="submit"  name="search" > <span class="btn"> <span class="t">Buscar</span> <span class="r"><span></span></span> <span class="l"></span> </span> </button>
                          </div>
                          <div align="center"></div>
                        </form>
código JS

Código:
function Buscar() {
	var cadena = document.form1.ob_clave.value.replace(/á/ig,'a').replace(/é/ig,'e').replace(/í/ig,'i').replace(/ó/ig,'o').replace(/ú/ig,'u').replace(/ñ/ig,'n').replace(/[^a-z\d ]+/ig,'');
	return cadena;
	
//	alert(cadena);
	//document.form1.action = "busqueda.php?action=buscar";
	//document.form1.submit();
}
ya intenté sin JS, sin la función Buscar, de varias formas y nada. debo entregar el sitio HELP!

Última edición por defleaner; 15/10/2010 a las 12:45
  #2 (permalink)  
Antiguo 15/10/2010, 12:49
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: ayuda con replace, no me funciona al dar enter

Lo primero es que es muy raro que pase eso porque lo estás validando a la hora de enviar el form, o sea que dándole al enter también tendría que validarlo porque lo estás enviando igual :S De todas formas, lo único que se me ocurre es que bloquees el envío del form con enter. @JavierB tiene un código en su página.
Saludos (:
PD: No creo que el alert(cadena) te funcionara porque las instrucciones después de un return no se ejecutan.
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 15/10/2010, 13:09
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: ayuda con replace, no me funciona al dar enter

muchas gracias por tu pronta respuesta, y si es extraño que no funcione, por eso lo intenté con esa función pero nada.

el alert lo tengo comentado jeje, lo utilicé para probar si quitaba las tildes, gracias por la observación

y tu sugerencia de bloquear Enter es excelente, ya encontré el código de JavierB y ya está bloqueado, pero por ser un buscador y por requerimiento del negocio quieren que funcione al dar Enter también, y no le encuentro por donde!
  #4 (permalink)  
Antiguo 15/10/2010, 15:16
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: ayuda con replace, no me funciona al dar enter

Solucionado, gracias a un compa de trabajo:

en el form llamamos a:
onkeypress="javascript:return pulsar(event)"

y la función queda así, lo que me faltaba era especificar el form para regresar el valor de la variable ya transformada :S

Código:
function pulsar(e) {
  if (e.keyCode==13) {
	  var cadena = document.form1.ob_clave.value.replace(/á/ig,'a').replace(/é/ig,'e').replace(/í/ig,'i').replace(/ó/ig,'o').replace(/ú/ig,'u').replace(/ñ/ig,'n').replace(/[^a-z\d ]+/ig,'');
	  document.form1.ob_clave.value=cadena;
}
Saludos!

Etiquetas: dar, enter, replace
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




La zona horaria es GMT -6. Ahora son las 18:31.