Foros del Web » Programando para Internet » Javascript »

eliminar y añadir valor según radio pulsado

Estas en el tema de eliminar y añadir valor según radio pulsado en el foro de Javascript en Foros del Web. Tengo un formulario que en el campo de texto incluyo el valor del botón radio que está seleccionado, el problema es que si en el ...
  #1 (permalink)  
Antiguo 19/12/2013, 14:00
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
eliminar y añadir valor según radio pulsado

Tengo un formulario que en el campo de texto incluyo el valor del botón radio que está seleccionado, el problema es que si en el mismo grupo de radio selecciono otra opción tengo que eliminar el valor de su compañero y sustituirlo por el nuevo valor. El añadir valor no tengo problema, pero el problema es eliminar valores ya que elimina cualquier valor y sólo incluye el ultimo seleccionado.

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.                         function anadir(obj) {
  3.                         if (obj.focus)
  4.                         obj.form.search_query.value += obj.value;
  5.                         }
  6.                     </script>
  7.                     <script type="text/javascript">
  8.                         function eliminar(obj) {
  9.                         if (obj.blur)
  10.                         obj.form.search_query.value ="";
  11.                         }
  12.                     </script>

Código HTML:
Ver original
  1. <div id="search_block_left" class="block exclusive">
  2.     <form name="formulario" method="post" action="{$link->getPageLink('search', true)}" id="searchbox">
  3.         <p class="block_content">
  4.             <label for="search_query_block">{l s='Enter a product name or description.' mod='blocksearch'}</label>
  5.             <input type="hidden" name="orderby" value="position" />
  6.             <input type="hidden" name="controller" value="search" />
  7.             <input type="hidden" name="orderway" value="desc" />
  8.            
  9.             <!-- Selectores Personal Shoppers -->  
  10.             <div>
  11.             <input type="radio" name="search_query1" value="moreno " onfocus="anadir(this)" onblur="eliminar(this)" />Moreno
  12.             <input type="radio" name="search_query1" value="Rubio " onfocus="anadir(this)" onblur="eliminar(this)"/>Rubio
  13.             </div>
  14.             <div>
  15.             <input type="radio" name="search_query2" value="con curvas " onfocus="anadir(this)" onblur="eliminar(this)"/>con Curvas
  16.             <input type="radio" name="search_query2" value="atletica " onfocus="anadir(this)" onblur="eliminar(this)"/>Atl&eacute;tica
  17.             </div>
  18.             <div>
  19.             <input type="radio" name="search_query3" value="atrevida " onfocus="anadir(this)" onblur="eliminar(this)"/>Atrevida
  20.             <input type="radio" name="search_query3" value="elegante " onfocus="anadir(this)" onblur="eliminar(this)"/>Elegante
  21.             </div>
  22.                        
  23.             <input class="search_query" type="text" id="search_query_block" name="search_query" value="" />
  24.             <input type="submit" id="search_button" class="button_mini" value="{l s='Go!' mod='blocksearch'}" />
  25.         </p>
  26.     </form>
  27. </div>

Como puedo conseguir que sólo me elimine el valor del compañero de grupo y no los de otros grupos?
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #2 (permalink)  
Antiguo 20/12/2013, 09:34
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 6 meses
Puntos: 79
Respuesta: eliminar y añadir valor según radio pulsado

hice unos cambios, la idea es que con cada clic, recorra el arreglo completo:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. var i
  3. window.onload = function(){
  4.     f = document.forms.item("formulario");
  5.     for ( i = 0 ; i < f.length ; i++ ){
  6.         if ( f.elements.item(i).type=="radio" ) f.elements.item(i).onclick = function(){recorrer();}
  7.     }
  8. }
  9.  
  10. function recorrer(){
  11.     texto = document.getElementById("search_query_block")
  12.     texto.value = ""
  13.     sep = ""
  14.     for ( i = 0 ; i < f.length ; i++ ){
  15.         if ( f.elements.item(i).type=="radio" && f.elements.item(i).checked==true)
  16.         {
  17.             var nombre = f.elements.item(i).value
  18.             texto.value = texto.value + sep + nombre
  19.             if ( sep == "" ) sep = " ";
  20.         }
  21.     }
  22. }
  23. </script>
  24.  
  25. <div id="search_block_left" class="block exclusive">
  26.     <form name="formulario" method="post" action="{$link->getPageLink('search', true)}" id="searchbox">
  27.         <p class="block_content">
  28.             <label for="search_query_block">{l s='Enter a product name or description.' mod='blocksearch'}</label>
  29.             <input type="hidden" name="orderby" value="position" />
  30.             <input type="hidden" name="controller" value="search" />
  31.             <input type="hidden" name="orderway" value="desc" />
  32.            
  33.             <!-- Selectores Personal Shoppers -->  
  34.             <div>
  35.             <label><input type="radio" name="search_query1" value="moreno" />Moreno</label>
  36.             <label><input type="radio" name="search_query1" value="Rubio"/>Rubio</label>
  37.             </div>
  38.             <div>
  39.             <label><input type="radio" name="search_query2" value="con curvas"/>con Curvas</label>
  40.             <label><input type="radio" name="search_query2" value="atletica"/>Atl&eacute;tica</label>
  41.             </div>
  42.             <div>
  43.             <label><input type="radio" name="search_query3" value="atrevida"/>Atrevida</label>
  44.             <label><input type="radio" name="search_query3" value="elegante"/>Elegante</label>
  45.             </div>
  46.                        
  47.             <label><input class="search_query" type="text" id="search_query_block" name="search_query" value=""  size="120"/>
  48.             <label><input type="submit" id="search_button" class="button_mini" value="{l s='Go!' mod='blocksearch'}" />
  49.         </p>
  50.     </form>
  51. </div>
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 20/12/2013, 12:20
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: eliminar y añadir valor según radio pulsado

Me ilusioné al verlo, pero peta la página con este código
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #4 (permalink)  
Antiguo 21/12/2013, 12:09
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 6 meses
Puntos: 79
Respuesta: eliminar y añadir valor según radio pulsado

No entiendo eso de "peta", lo único que hace es que ya no usa los eventos "onfocus" o "onblur" sino el "onclick" y lo coloca automáticamente en todos los radios dentro del form "formulario" y al momento de hacer click recorre todo para capturar el las opciones elegidas.

allá tu si te "peta" o no
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #5 (permalink)  
Antiguo 21/12/2013, 12:17
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: eliminar y añadir valor según radio pulsado

la web se queda en blanco es a lo que me refiero que peta, si voy a ver el código fuente que está cargando, está totalmente en blanco.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #6 (permalink)  
Antiguo 21/12/2013, 12:25
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 6 meses
Puntos: 79
Respuesta: eliminar y añadir valor según radio pulsado

mira, subí el archivo llamado radios.htm

https://www.mediafire.com/?997bimnx4e5a4xw

me funciona en Chrome y IE

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #7 (permalink)  
Antiguo 21/12/2013, 12:31
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: eliminar y añadir valor según radio pulsado

:( ya veo

Bueno este código va incrustado en una web en prestashop, igual algo está entrando en conflicto.

gracias de todos modos.

Miraré los otros script que carga el sistema a ver si por nombre de variable o algo estan en conflicto.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #8 (permalink)  
Antiguo 21/12/2013, 12:47
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 6 meses
Puntos: 79
Respuesta: eliminar y añadir valor según radio pulsado

creo que debe ser el onload, lo importante es que la función recorrer() corra al terminar de cargarse la página para que inserte la función onclick en los radio buttons, luego es pan comido !!!
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #9 (permalink)  
Antiguo 21/12/2013, 13:37
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: eliminar y añadir valor según radio pulsado

Si elimino está linea cargar correctamente, aunque no funciona :(((

Código Javascript:
Ver original
  1. if ( f.elements.item(i).type=="radio" ) f.elements.item(i).onclick = function(){recorrer();}
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)
  #10 (permalink)  
Antiguo 21/12/2013, 14:55
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años, 6 meses
Puntos: 79
Respuesta: eliminar y añadir valor según radio pulsado

Esa línea es la que da la función a los radio buttons en el onclick, valida que dentro del formulario sea un input type "radio" y le agrega la funcion recorrer()

lo que puedes hacer, es a cada input escribir de forma manual el onclick="recorrer()" y no cargar el window.onload ya que estaría listo.

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #11 (permalink)  
Antiguo 21/12/2013, 15:21
 
Fecha de Ingreso: julio-2005
Mensajes: 304
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: eliminar y añadir valor según radio pulsado

Lo he probado, pero no carga las selecciones.
__________________
http://www.lynxstyle.net

En la vida como en el ajedrez, hay un reloj que marca el tiempo de cada movimiento, si lo consumes pierde (MJJG)

Etiquetas: formulario, input, pulsado, radio, según, valor
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 08:23.