Foros del Web » Programando para Internet » Javascript »

Quitar datos de un campo de texto

Estas en el tema de Quitar datos de un campo de texto en el foro de Javascript en Foros del Web. Veamos tengo este codigo con unos checkbox, los cuales al pincharlos me rellenar los datos en el campo productos, me los agrega separados por una ...
  #1 (permalink)  
Antiguo 13/01/2005, 12:04
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 2
Quitar datos de un campo de texto

Veamos tengo este codigo con unos checkbox, los cuales al pincharlos me rellenar los datos en el campo productos, me los agrega separados por una coma, el problema me surgen cuando desclico los checkbox, que tendría que quitarme ese elemento que esta en el campo productos, pero no me sale, e probado alguna cosa, pero la verdad es que no tengo ni idea, y no e encontrado nada al respecto, alguien me puede aclarar como se haría esto?


Código HTML:

<script> 

function copia(valor)
{
 //jaimito=document.accesorios.productos.value
  if (document.accesorios.productos.value=="") document.accesorios.productos.value=valor
  else document.accesorios.productos.value=document.accesorios.productos.value+','+valor;
  seleccion=0
}

function descopia(valor)
{
document.accesorios.productos.value -= ','+valor;
}

</script> 



<form name="accesorios" method="post" action="javascript:self.close();" onSubmit="javascript:opener.document.forms[0].accesorios.value=document.forms[0].total.value">

<table width="450" border="1" cellspacing="0" cellpadding="0">

  <tr id="fila">
    <td width="23" valign="top"><input name="precio" type="checkbox" id="precio" value="1" onClick="if(this.checked) copia(1); else descopia(this.checked); "></td>
    <td width="358"><font face="Verdana" size="1" color="000000">Diferencial de cadena</font></td>
    <td width="69" valign="top"><div align="right"><font face="Verdana" size="1" color="000000">120 Euros</font></div></td>
    </tr>

  <tr id="fila">
    <td width="23" valign="top"><input name="precio" type="checkbox" id="precio" value="2" onClick="if(this.checked) copia(2); else descopia(this.checked); "></td>
    <td width="358"><font face="Verdana" size="1" color="000000">Ventana Sandwich</font></td>
    <td width="69" valign="top"><div align="right"><font face="Verdana" size="1" color="000000">67 Euros</font></div></td>
    </tr>

  <tr id="fila">
    <td width="23" valign="top"><input name="precio" type="checkbox" id="precio" value="3" onClick="if(this.checked) copia(3); else descopia(this.checked); "></td>
    <td width="358"><font face="Verdana" size="1" color="000000">Ventana Sandwich</font></td>
    <td width="69" valign="top"><div align="right"><font face="Verdana" size="1" color="000000">65 Euros</font></div></td>
    </tr>

<tr>
    <td valign="top">&nbsp;</td>
    <td valign="top"><div align="right">
        <input name="productos" type="text" id="productos">
    </div></td>
    <td valign="top"><input type="submit" name="Submit" value="Enviar"></td>
</tr>
</table>

</form>

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
  #2 (permalink)  
Antiguo 14/01/2005, 14:47
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, haven
No creo que exista la función "-" para cadenas. Inténtalo así:
Código PHP:
function descopia(valor)
{
var 
lon1 document.accesorios.productos.value.length
var lon2 valor.length
document
.accesorios.productos.value document.accesorios.productos.value.substr(0,lon1-lon2-1))

Ahora, que sólo funcionará bien si desmarcas nada más marcar, si entre medias marcas otra, se hará un lío.

Mientras el servidor se "desocupaba" para admitir mi respuesta, he encontrado otra solución que resuelve eso y es más elegante:
Código PHP:
function descopia(valor)
{
var 
quita "," valor
document
.accesorios.productos.value document.accesorios.productos.value.replace(quita,"")

__________________
Angel :cool:
  #3 (permalink)  
Antiguo 20/01/2005, 04:36
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 2
Gracias angsanchez la segunda opcion funciona perfectamente no sabia lo del replace en javascript, y eso que en asp lo utilizo, bueno poquito a poquito voy aprendiendo cosas nuevas, gracias.

Por cierto no e podido responderte antes por que no me dejaba entrar al foro, ahora parece que va mejor.

Un saludo
__________________
asp, php, .net, adaptandose a las necesidades
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:15.