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,"")
}