Page 1 of 1

Llenar y eliminar opciones en un select

Posted: Mon Jan 21, 2019 9:41 am
by gguerrero
Estimados y Estimadas,

Estoy tratando de utilizar 2 dropdown anidados para realizar esta categorización

(dropdown 1) - (dropdown 2)
Categoria 1 - opción 1, opción 2, opción 3
Categoria 2 - opción 4, opción 5, opción 6

y así.... Yo ya puedo unir el primer select con el segundo, pero no puedo eliminar ni agregar las opciones para que me muestre lo que quiero.


Esto es lo que intenté, pero no funciona:
Code: Select all
if ($('#categoria_cargo').getValue() != '') {
    checkCategoria($('#categoria_cargo').getValue(), '');
}

$('#categoria_cargo').setOnchange(checkCategoria); //execute when field's value changes

function checkCategoria(newVal, oldVal) {
  switch(newVal){
  	case "1":	//categoria a	
      $("#cargos").append('<option value="1">Médico Cirujano</option>');
      $("#cargos").append('<option value="2">Farmacéuticos</option>');
      $("#cargos").append('<option value="3">Químicos-Farmacéuticos</option>');
      
      //$("#cargos option[value='option1']").remove();
      
      break;
  	case "2": //categoria b   
      break;
  	case "3": //categoria c
      break;
    case "4": //categoria d
      break;
    case "5": //categoria e
      break;
    case "6": //categoria f
      break;
	}
}
de antemano muchas gracias!

Saludos

Re: Llenar y eliminar opciones en un select

Posted: Mon Jan 21, 2019 10:02 pm
by amosbatto
Debes leer esto:
https://www.pmusers.com/index.php/Chang ... _the_field

El código sería como este:
Code: Select all
function checkCategoria(newVal, oldVal) {
  switch(newVal){
    case "1":	//categoria a
     getFieldById("cargos").model.attributes.remoteOptions = [
           {value: "1", label: "Médico Cirujano"},
           {value="2", label: "Farmacéuticos"},
           {value="3", label: "Químicos-Farmacéuticos"}
      ];      
      break;
    case "2": //categoria b   
      break;
    case "3": //categoria c
      break;
    case "4": //categoria d
      break;
    case "5": //categoria e
      break;
    case "6": //categoria f
      break;
   }
   var aOptions = getFieldById("cargos").model.attributes.remoteOptions;
   getFieldById("cargos").model.mergeRemoteOptions(aOptions);
}