ввод значений в массив в скрытом поле

#javascript #jquery #jquery-ui

#javascript #jquery #jquery-пользовательский интерфейс

Вопрос:

У меня был следующий код jquery, в котором мне нужно вводить значения в скрытое поле, используя запятую, если добавлено несколько элементов.

я использую этот код для ввода значений, но я не понимаю, где и как мне добавить значение в скрытое поле, чтобы я мог использовать выбранное значение

код jquery

 function initializeAutocomplete(obj){
    obj.autocomplete({
        source: function (request, response) {
            var values = [];
            for(var x = 0;x < predifined_cources.length;x  ){
                if(predifined_cources[x].text.indexOf(request.term)>-1)
                    values.push({"label":predifined_cources[x].text, "value":predifined_cources[x].id "~YES"}); 
            }
            if(values.length==0){
                $.post("customers.cfm",{"term":request.term})
                .done(function(data){
                    try{
                        var obj = $.parseJSON(data),
                        values = [];
                        for(var x = 0; x < obj.length; x  ){
                            values.push({"label":obj[x].text, "value":obj[x].id});
                        }
                        response(values);
                    }catch(e){
                    }
                })
                .fail(function(e){
                });
            }
            else
                response(values);
        },
        change: function(event, ui) {
            if (!ui.item) {
                $(this).next().val('');
            } 
        },
        select: function(event, ui) {
            $(this).next().val(ui.item.value);
            ui.item.value = ui.item.label;
        }
    });
}
initializeAutocomplete($('[selectCustomer]').first());
  

html-код:

 <input selectCustomer name="customer_name" class="form-control" id="customer_name_select" value="" placeholder="Select Customer..." data-rule-required="true" data-msg-required="Choose Customer"/>
                                <input type="hidden" value=""/>
  

Ответ №1:

Как только цикл будет завершен, который создает массив, вы преобразуете массив в строку и устанавливаете значение поля

Вы можете использовать JSON для сохранения структуры массива

 $('#customer_name_select').val( JSON.stringify(array));
  

Или для использования строки, разделенной запятыми Array.prototype.join()

 $('#customer_name_select').val( array.join());
  

Комментарии:

1. но там, где я должен добавить это, я хочу добавить их в скрытое поле, а не в customer_name_select . я задал идентификатор скрытого поля как customer_name_hidden

2. дайте скрытому полю идентификатор и используйте его вместо выбранного

Ответ №2:

Вы можете использовать jQuery data -функцию. Это позволяет добавлять объекты в DOM — элементы без необходимости преобразования их вручную в строку. Этого достаточно, только если вам нужны данные только на стороне клиента.