Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/08/2009, 16:42
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Valor de checkbox a input

el problema es que estas agregando valores ya existentes aunque la opcion no este marcada. lo adecuado seria recorrer por todos los checkbox para determinar cuales estan marcados y apartir de ahi crear el string. cierto que implica un poco de trabajo adicional dado que cada vez se marca/desmarca una opcion tiene que recorrer todos los checkbox pero es la alternativa mas fiable.

la mejor alternativa que se me ocurre es tener todos los checkbox dentro de un elemento y asignarle un ID, de modo que si necesitias aplicar algun diseño especifico no te veas limitado en la forma de obtener el grupo de checkbox.
Código:
<div id="checkboxes">
<input type="checkbox" onclick="concepto();" ... />
<input type="checkbox" onclick="concepto();" ... />
<input type="checkbox" onclick="concepto();" ... />
...
</div>
para obtener el grupo de checkbox obtienes referencia del <DIV> y luego usas la funcion getElementsByTagName. la funcion devuelve una coleccion que puedes recorrerla con un bucle
Código:
function concepto(){
var string = "", boxes = document.getElementById("checkboxes").getElementsByTagName("input");
for(var i = 0; i < boxes.length; i++)if(boxes[i].checked)string += boxes[i].value + ", ";
input.value = string; // siendo input la referencia al campo de texto;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.