Заполнить выбор с помощью OptGroup из двух отдельных объектов JSon JQuery - PullRequest
4 голосов
/ 26 марта 2012

У меня есть два объекта json

var type = [{"Id":1,"Name":"This is a name"}];
var subType = [{"Id":2,"ParentId":1,"Name":"This is a name"},];

subType.ParentId ссылается на type.Id

Я хочу иметь возможность заполнять выборку в jQuery с

<SELECT> 
<OPTGROUP LABEL="type.Name" id="type.Id">        
<OPTION LABEL="subType.Name" value="subType.Id">subType.Name</OPTION>                  
</OPTGROUP>
</SELECT>

Ответы [ 2 ]

2 голосов
/ 26 марта 2012

Приведенный ниже код использует просто «select» в качестве селектора jquery, поэтому он повлияет на все поля выбора на странице. Вы, вероятно, хотите изменить это.

Приведенный ниже код также не поддерживает выбор одного из параметров, который, вероятно, стоит обратить внимание.

var type = [{"Id":1,"Name":"This is a name"}];
var subType = [{"Id":2,"ParentId":1,"Name":"This is a name"}];

var output = [];
$.each(type, function(){
    //for each type add an optgroup
    output.push('<optgroup label="'+this.Name+'">');
    var curId = this.Id;

    //linear search subTypes array for matching ParentId
    $.each(subType, function(k,v){
        if( this.ParentId = curId ){

        output.push('<option label="'+this.Name +'" value="'+ this.Id +'">'+ this.Name +'</option>'); 

        //DELETE the element from subType array so the next search takes less time
        subType.splice(k,1);
    }
    });
    output.push('</optgroup>');
});

//change the 'select' here to the id of your selectbox 
$('select').html(output.join(''));
0 голосов
/ 26 марта 2012

Добавление групп опций для динамического выбора с помощью javascript

Вы можете нарушить динамику комбо.Доступ к значениям json находится в этом вопросе.

Как получить доступ к объекту Json, в имени которого есть пробел?

В постах есть несколько ситуаций для решения вашего вопроса.

...