我有一个带有jquery自动完成功能的简单输入文本。我有一些可选择的项目,当自动完成设置“pid”命名字段时,我选择了一个。在此之后,我手动更改项目的名称。这将是一个新的,我需要保存到数据库中。我能以某种方式检测输入文本字段是否已更改?
我想设置清空名为“pid”的域名。
这是我的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是否已更改,而不是来自自动完成列表?
答案 0 :(得分:0)
以下是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');
}
});