У меня есть простой входной текст с функцией автозаполнения jquery. У меня есть некоторые выбираемые элементы, и я выбрал один, когда автозаполнение настраивает поле "pid". После этого я вручную меняю имя элемента. Это будет новый, что мне нужно сохранить в базе данных. Могу ли я каким-то образом определить текстовое поле ввода?
Я хочу установить для опорожнения "pid" с именем filed.
Вот мой код HTML:
<input type="text" name="pid" id="pid">
<input type="text" name="name" id="name">
Вот код jQuery:
$('#name')).autocomplete({
source: function(request, response) {
$.ajax({
url:myurl,
data:mydata,
type:'get',
success: function(data) {
response(data.mydat);
},
error: function(e,f,g) {
}
});
},
minLength: 1,
select: function(event, ui) {
$('#pid').val( ui.item.id );
$('#name').val( ui.item.name );
}
});
Так что я могу каким-то образом определить #name, но не из списка автозаполнения?
Вот код, добавленный в jsfiddle. Он будет предупреждать об обновлении базы данных, если имя изменено и не равно одному набору автозаполнения.
Пример кода ниже:
var source = [ ];
var mapping = { };
var trackName;
for(var i = 0; i <compName .length; ++i) {
source.push(compName [i].id);
mapping[compName[i].id] = compName[i].value;
}
$("#compID").autocomplete({
source: source,
minLength: 1,
select: function(event, ui) { $("#compName").val(mapping[ui.item.value]);
trackName = mapping[ui.item.value];
}
});
$("#compName").change(function() {
if($("#compName").val() != trackName)
{
alert('Name is changed, Fire ajax and update DB');
}
});