Foros del Web » Programando para Internet » Javascript »

Enviar distintos formularios segun radio

Estas en el tema de Enviar distintos formularios segun radio en el foro de Javascript en Foros del Web. Hola, no estoi muy puesto en javascript y el siguiente codigo no me funciona, si me pudierais decir como hacerlo funcionar o si esiste otra ...
  #1 (permalink)  
Antiguo 21/06/2008, 03:20
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Enviar distintos formularios segun radio

Hola, no estoi muy puesto en javascript y el siguiente codigo no me funciona, si me pudierais decir como hacerlo funcionar o si esiste otra forma mas facil de hacerlo me seria de mucha ayuda.
Código:
<script>
function enviar(){
document.goo.q.value=document.form.s.value;
document.blog.s.value=document.form.s.value;
if(document.form.opcion.value=="all")
{
document.goo.submit();  
}
else
{
document.blog.submit();
}


}
</script>

<div class="searchform">

<form name="form">
<input type="text" value="" name="s" class="s" />
<input name="opcion" value="all" checked="checked" type="radio">Toda la web      <input value="Blog" name="opcion" type="radio"> En Scrhall.com
<a href=javascript:enviar()><img src="<?php bloginfo('template_url'); ?>/images/button-submit.gif" alt="Enviar" /></a>

    
</form>
<form name="goo" action="http://www.google.es/cse" id="cse-search-box" target="_blank">
  <div>
    <input type="hidden" name="cx" value="xxxx" />
    <input type="hidden" name="ie" value="ISO-8859-1" />
    <input type="hidden" name="q" value="" />
  </div>
</div>
<form name="blog" method="get" id="searchform" action="<?php bloginfo('home'); ?>">
<input type="hidden" value="" name="s" class="s"/>
</form>
  #2 (permalink)  
Antiguo 21/06/2008, 10:43
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: Enviar distintos formularios segun radio

Hola scrhall:

En tu código veo 3 etiquetas <form>, quizás como dices no es la manera más sencilla de hacerlo.

Prueba a tener un único form y a cambiar el atributo action del mismo según qué radio se escoja, simplifica el HTML. Podría ser así:


Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<
head>
<
meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<
meta name="Author" content="derkeNuke" />
<
title>Página nueva</title>
<
style type="text/css">

</
style>
</
head>

<
body>


<
script type="text/javascript">
<!--

function 
enviar(){
    var 
elRadio document.f.opcion;
    var 
todaLaWeb elRadio[0].checked;
    if( 
todaLaWeb ) {
        
document.f.action "todalaweb.htm";
        return 
true;
    }
    else {
        
document.f.action "scrhall.htm";
        return 
true;
    }
}


// -->
</script>


<form name="f" action="todalaweb.htm" onsubmit="return enviar()">
    <input type="text" name="s" value="" />
    <input type="radio" name="opcion" checked="checked" id="todalaweb"> <label for="todalaweb">Toda la web</label>      
    <input type="radio" name="opcion" id="enscrhall"> <label for="enscrhall">En Scrhall.com</label>
    <button type="submit">Enviar</button>
</form>




</body>
</html> 
Por cierto, un formulario necesita un botón de tipo submit hagas lo que hagas, sino no es accesible.


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 21/06/2008, 10:47
Avatar de johnj  
Fecha de Ingreso: marzo-2007
Mensajes: 65
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Enviar distintos formularios segun radio

Es cierto por normas de usabilidad y accesibilidad es necesario un botón submit en un formulario. Creo que las forma más sencilla de hacerlo es cambiando el atributo action dependiendo del condicional antes de enviarlo y que la función se ejecute antes de enviar el formulario como lo ha propuesto derkenuke.
  #4 (permalink)  
Antiguo 21/06/2008, 12:49
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Enviar distintos formularios segun radio

pense en eso, ponerlo solo en un form y cambiar el action pero, cada formulario tiene diferentes atributos como haria para hacer que se añadan atributos si es un formulario y que no esten si es el otro?
  #5 (permalink)  
Antiguo 26/06/2008, 02:35
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Enviar distintos formularios segun radio

alguien me puede contestar¿
  #6 (permalink)  
Antiguo 26/06/2008, 08:07
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: Enviar distintos formularios segun radio

No entiendo eso de diferentes atributos, ¿Quieres decir diferentes campos en el formulario? Los atributos se pueden cambiar con javascript (setAttribute()), y los campos puedes mostrarlos/ocultarlos a tu voluntad. Incluso borrarlos y escribir otros nuevos.
Fíjate en los códigos de nuestro amigo JavierB: crear elementos dinámicamente.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 02:11.