我正在使用jquery 1.8.2和jqueryui 1.9.0库。
我试图向我的表格中添加一个“编辑记录”对话框,其中包含jquery-ui的自动完成文本框。
我还使用了自动完成的更改事件来限制用户从给定列表中选择项目。
我的问题是:当我显示我的编辑表单时,我将现有数据设置为文本框,但是当用户单击编辑表单中的另一个字段时,更改控制器会弹出错误消息,指出没有更改。我找到了许多示例,展示了如何为组合框类型的自动完成设置值,但我找不到一个针对文本框类型的示例。请帮助我解决这个问题,我相信您的答案对其他用户也很有用。
以下是我的自动完成文本框代码:
非常感谢您的回答。
我试图向我的表格中添加一个“编辑记录”对话框,其中包含jquery-ui的自动完成文本框。
我还使用了自动完成的更改事件来限制用户从给定列表中选择项目。
我的问题是:当我显示我的编辑表单时,我将现有数据设置为文本框,但是当用户单击编辑表单中的另一个字段时,更改控制器会弹出错误消息,指出没有更改。我找到了许多示例,展示了如何为组合框类型的自动完成设置值,但我找不到一个针对文本框类型的示例。请帮助我解决这个问题,我相信您的答案对其他用户也很有用。
以下是我的自动完成文本框代码:
$("#EditMaterialName").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
url: "someurl",
dataType: "json",
data: {
search_string: request.term
},
success: function (data) {
response($.map(data, function (item) {
return {
label: item.description,
value: item.description
}
}));
}
});
},
minLength: 2,
select: function (event, ui) {
},
change: function (event, ui) {
if (!ui.item) {
$('<div class="error"><b> please select a listed value.</b><div>').insertAfter('#EditMatName');
$('#EditMaterialName').val('');
}
},
open: function () {
$(this).removeClass('ui-corner-all').addClass('ui-corner-top');
},
close: function () {
$(this).removeClass('ui-corner-top').addClass('ui-corner-all');
}
});
这里是显示编辑记录对话框的代码:
$('a.edit_link').live("click", function () {
clearEditMaterialForm();
//loading selected value
var valMaterialName = $(this).closest('tr').children('td.cl_material_name').text();
$('#EditMaterialName').val(valMaterialName);
});
非常感谢您的回答。