Я программирую форму с динамическими полями typeaheads, и я обнаружил проблему, когда хочу показать и выбрать предложения. У меня есть два первых поля, выбор ввода и ввод типа. Когда опция выбрана, она загружает список значений во входном файле. Проблема возникает, когда я создаю (динамически) клон этой пары полей, и я хочу получить список значений в правильном typeahead. Я получаю идентификатор поля (idTypeAhead), когда я фокусируюсь в поле, и я использую его в typeahead. Это код:Изменение динамического поля Typeahead
//TYPEAHEAD
$('input.typeahead').focus(function(){
idTypeAhead = parseInt($(this).attr('id').replace('typeAhead_',''));
selectAttr = $('select#selectAttr_'+idTypeAhead).find('option:selected').val();
if(selectAttr=="null"){
selectAttr=0;
}
});
$("input#typeAhead_"+idTypeAhead).on("typeahead:select").typeahead({
name:'input#typeAhead_'+idTypeAhead,
displayKey: 'input#typeAhead_'+idTypeAhead,
input: 'input#typeAhead_'+idTypeAhead,
container:'input#typeAhead_'+idTypeAhead,
display: $(this),
suggestion: $(this),
minLength : 1,
sorter : this.query,
source : function(query, process){
return $.ajax({
url:'/aplicaciones/jsonValorAttr?selectAttr='+selectAttr,
dataType: 'json',
type:'POST',
success: function(data){
states = [];
map = {};
$.each(data, function (i, state) {
map[state] = state;
states.push(state);
});
process(states);
}
});
}
});
У меня есть этот код в форме (я использую Spring STS). Также у меня есть две кнопки «+» и «-». Когда я нажимаю «+», я клонирую эти два поля и увеличиваю число идентификаторов каждого элемента. Когда я нажимаю «-», я удаляю пару полей. (пример: selectAttr_101 -> newclone: selectAttr_102).
<div class="controls">
<form:select path="rolHerramientaID" id="selectAttr_101" cssClass="field-required lstAtributos" cssErrorClass="select-error">
<form:option value="null" selected=""><spring:message code="altaAplicacion.form.seleccionar" />
</form:option>
<c:forEach var="selectAtributos" items="${resultAtributos}" varStatus="rowCount">
<form:option value="${selectAtributos.atributosId}">${selectAtributos.nombreAtributo}</form:option>
</c:forEach>
</form:select>
<form:errors path="rolHerramientaID" class="help-block" /></div>
</div>
<div class="control-group required">
<label for="input01" class="control-label"><spring:message code="altaAplicacion.form.valor" /></label>
<div class="controls">
<input id="typeAhead_101" class="input-medium typeahead" type="text" data-provide="typeahead" autocomplete="on">
</div>
Как можно динамически менять контейнер типа head?
пожалуйста, вы можете создать демо? Может быть, на http://jsfiddle.net? или, возможно, просто добавьте свою структуру формы для лучшего понимания. – Dhiraj
Привет! Я отредактировал мое сообщение. –