Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Quitar elementos de un combo
Enviado por monica_arias el día 21 de enero de 2005
Hola a todos,
Alguien sabe como quitar alguno de los elementos de unos combos en función de valor seleccionado en uno?.
<script language="JavaScript1.2">
function addOption(text, value)
{
var comboBox = document.getElementById('comboBox');
var newOption = new Option(text, value);
comboBox.options[comboBox.options.length] = newOption;
}
function delOption()
{
var comboBox = document.getElementById('comboBox');
if (comboBox.options.length == 0)
{
alert('No hay elementos en la lista');
}
else if (comboBox.options.selectedIndex < 0)
{
alert('No has seleccionado ningún elemento');
}
else if (confirm('¿Seguro que quieres eliminar el elemento?'))
{
comboBox.options[comboBox.options.selectedIndex] = null;
}
}
function delAllOptions()
{
var comboBox = document.getElementById('comboBox');
if (comboBox.options.length == 0)
{
alert('No hay elementos en la lista');
}
else if (confirm('¿Seguro que quieres eliminar todos los elementos?'))
{
comboBox.options.length = 0;
}
}
</script>
Buenas, he llegado aqui buscando como eliminar las opciones de un select, que no es exactamente lo mismo que eliminarlas de un combobox.
Me explico. tengo un select que segun lo que se seleccione monta otro select. Los select pueden ser de distinto tamñao en cuanto a opciones se refiere. Si creo el select con una opcion que me crea tres opciones y luego debe crear el otro con dos opciones, me pone las dos opciones bien, pero deja el resto de las opciones anteriores.
¿Cual es la diferencia para ti, en HTML, entre un "select" y un "combobox"? :-o
En cuanto a tu cuestion, antes de empezar a añadir las opciones nuevas al select debes eliminar las anteriores.
Para ello añade la linea
document.forms.form3.menu2.options.length = 0;
justo despues de crear las nuevas opciones y antes de añadirlas al select.
La diferencia es que en un combobox las opciones aparecen todas en una lista, mentras que en un select es un combo despegable. A eso me queria referir. Parece ser que la forma de tratar con ellos es bastante similar.
He solucionado el problema poniendo algo parecido a lo que me has indicado.
Gracias.
PD: La url del ejemplo no es esa. Puse todo para que se pudieran ver, los diferentes archivos que tengo colgados sobre el mismo tema de los combos, pero lo que yo estyo desarrollando como prueba para luego integrarlo en una aplicacion es: http://acad5084act.uji.es/test_combos.html
Si ves el codigo fuente veras que es un poco mas complicado que usar simple javascript. Ademas en comentario veras el otro problema que aun le estoy dandole vueltas. Si tienes idea de algo, cualquier sugerecia sera tan bienvenida como la que ya me has hecho.
Dependiento de la lógica simplemente puedes hacer esto (1 puede cambiar de acuerdo a tus necesidades, indica la posición del elemento a eliminar)):
var select = document.getElementById("productos");
select.remove(1);
Si quieren manejar 2 select para agregar o quitar elementos entre ellos miren esto, por lo menos anda
function addSelectedClient(){
var indice1=document.formContent.clients1.options.selectedIndex;
var indice2 = document.formContent.clients2.length;
option = new Option(document.formContent.clients1.options[indice1].value,document.formContent.clients1.options[indice1].value);
document.formContent.clients2.options[indice2]=option;
document.formContent.clients1.options[indice1] = null;
}
function addAllClients(){
var indice = document.formContent.clients2.options.length;
for (i=0; i < document.formContent.clients1.options.length; i++){
option = new Option(document.formContent.clients1.options[i].value,document.formContent.clients1.options[i].value);
document.formContent.clients2.options[indice]=option;
indice++;
}
for (i=document.formContent.clients1.options.length; i > 0; i--){
document.formContent.clients1.options[0] = null;
}
}
function deleteSelectedClient(){
var indice1 = document.formContent.clients2.options.selectedIndex;
var indice2 = document.formContent.clients1.length;
option = new Option(document.formContent.clients2.options[indice1].value,document.formContent.clients2.options[indice1].value);
document.formContent.clients1.options[indice2]= option;
document.formContent.clients2.options[indice1] = null;
}
function deleleteAllClients(){
var indice = document.formContent.clients1.options.length;
for (i=0; i < document.formContent.clients2.options.length; i++){
option = new Option(document.formContent.clients2.options[i].value,document.formContent.clients2.options[i].value);
document.formContent.clients1.options[indice]=option;
indice++;
}
for (i=document.formContent.clients2.options.length; i > 0; i--){
document.formContent.clients2.options[0] = null;
}
}
la reputa que te re pario y donde mierda estan definidos los 2 select, la concha de la lora puta la proxima pone algo coherente con lo que decis gilll
me haces perder el tiempo leyendo este forito de mierda, bueee seguro sos un principiantito de mierda que te puedo exigir, chau loca