2015-04-18 2 views
0

Я знаю, что этот вопрос уже отвечал, но это this topicКак получить множественный выбор JS

не помог мне. Я попробовал два первых решения, и никто не работал.

Во-первых: я получаю сообщение об отсутствии неопределенных параметров (независимо от того, как я пытался справиться с этим) Второе: поскольку я работаю над метеор, «this.val()» не является значением, так как это не относится к хорошему объекту.

EDIT: Вот мой код

HTML:

<select class="selectpicker show-tick" id="update-languages-1" data-selected-text-format="values"> 
    {{#each isoLangs 1}} 
    {{#if selected}} 
    <option disabled selected>{{name}}</option> 
    {{else}} 
    <option>{{name}}</option> 
    {{/if}} 
    {{/each}} 
</select> 

JS:

var learningLanguages = [], 
    options = select && select.options, 
    iLen = options.length; 

for (var i = 0, ; i < iLen; i++) 
    if (options[i].selected) 
    learningLanguages.push(options[i].text); 

Как я уже сказал, я также попытался с JQuery:

Template.profile.events({ 
    'submit form': function(event, tmpl){ 
    [...] 
    var learningLanguages = []; 
    $('#update-languages-1 :selected').each(function(){ 
     learningLanguages.push($(this).val()); 
    }); 
    return false; 
    } 
}); 

Могли вы предлагаете мне другой способ рубить?

Спасибо Вам

+1

Опубликуйте свой собственный код. – plalx

+0

Ваш параметр (ы) не имеет атрибута value. Вы должны добавить его. После этого $ select.val() вернет массив, содержащий значения из выбранного параметра. Не забудьте также добавить атрибут «multiple» к элементу select (который позволяет выбрать более одного параметра), иначе $ select.val() вернет уникальное значение из выбранного параметра (а не как массив значений). –

ответ

-1

Выберите вариант элементов необходимость значения = «» атрибут объявления:

<select multiple class="selectpicker show-tick" id="update-languages-1" data-selected-text-format="values"> 
    {{#each isoLangs 1}} 
    {{#if selected}} 
    <option value="{{name}}" disabled selected>{{name}}</option> 
    {{else}} 
    <option value="{{name}}">{{name}}</option> 
    {{/if}} 
    {{/each}} 
</select> 

Если вы хотите, чтобы выбрать несколько вариант (не только один), вы должны добавить мультипликатора атрибут выбора.

Вы можете просто использовать .val() от выбора, чтобы получить выбранные значения параметров в виде массива (в случае выбора нескольких) или выбранное значение параметра (в случае, если он не кратен выбор):

var learningLanguages = $('#update-languages-1').val(); 
Смежные вопросы