JavaScript - duda para asignar un valor a las opciones de la listas despegables

   
Vista:

duda para asignar un valor a las opciones de la listas despegables

Publicado por jose (2 intervenciones) el 04/10/2015 20:31:14
Estimados compañeros tengo la siguiente duda tengo el siguiente codigo que utilizo para un combobox. El problema es que a la hora de asignar un valor a las opciones de la listas despegables solo se me ocurre hacerlo de forma numerica. Mi objetivo es que el value sea igual al name del array municipies para los municipios y del name de provinces para las provincias pero no se como conseguirlo, alguien me podría dar alguna idea?

Gracias de antemano.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var PS = (function(){
var municipes = [{
	"cod_prov": "01",
	"cod_mun": "001",
	"id": 0,
	"name": "Alegría-Dulantzi"
}, {
	"cod_prov": "52",
	"cod_mun": "001",
	"id": 8116,
	"name": "Melilla"
}];
 
var provinces = [{
	  "code": "01",
	  "name": "ARABA/ÁLAVA"
  }, {
	  "code": "02",
	  "name": "ALBACETE"
  }];
 
var provinceCssSelector = '#province';
var municipeCssSelector = '#city';
var provinceDefaultText = 'Provincia';
var municipeDefaultText = 'Municipio';
 
 
$().ready(function() {
	// Set default text
	$(provinceCssSelector).append($('<option>').text(provinceDefaultText).attr('value', -1));
	$(municipeCssSelector).append($('<option>').text(municipeDefaultText).attr('value', -1));
 
	// Populate province select
	$.each(provinces, function(number, province) {
		$(provinceCssSelector).append($('<option>').text(province.name).attr('value', province.code));
	});
 
	// When selected province changes, populate municipe select
	$(provinceCssSelector).change(function() {
		var selectedProvince = this.value;
		$(municipeCssSelector).empty();
		$(municipeCssSelector).append($('<option>').text(municipeDefaultText).attr('value', -1));
		$.each(municipes, function(number, municipe) {
			if (municipe.cod_prov == selectedProvince) {
				$(municipeCssSelector).append($('<option>').text(municipe.name).attr('value', number.toString()));
			}
		});
		$(municipeCssSelector).selectpicker('refresh');
        $(municipeCssSelector).selectpicker('render');
	});
});
 
}());
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

duda para asignar un valor a las opciones de la listas despegables

Publicado por xve (1595 intervenciones) el 05/10/2015 08:12:55
Hola Jose, no te recomiendo utilizar el name, ya que veo que utiliza acentos, y depende del navegador, puede ser que el acento no se envié correctamente... siempre es mejor utilizar un valor numérico.

De todas maneras, si lo quieres hacer, creo que es modificando esta linea:
1
$(municipeCssSelector).append($('<option>').text(municipe.name).attr('value', number.toString()));
por:
1
$(municipeCssSelector).append($('<option>').text(municipe.name).attr('value', municipe.name));

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda para asignar un valor a las opciones de la listas despegables

Publicado por jose (2 intervenciones) el 07/10/2015 15:09:35
Perdona xve por no responder antes, ya probe eso y no funciona :S

Pero no lo entiendo porque leyendo el codigo es lo que debería hacer, no se si se me esta pasando algo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar