#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 — элементы без необходимости преобразования их вручную в строку. Этого достаточно, только если вам нужны данные только на стороне клиента.