使用Javascript的多文本框自动完成扩展程序
我想为具有相同属性的多个文本框应用一个自动完成扩展程序,例如 我只想对所有具有使用Javascript的多文本框自动完成扩展程序,javascript,Javascript,我想为具有相同属性的多个文本框应用一个自动完成扩展程序,例如 我只想对所有具有name=“txtQtyPkgs”的对象应用相同的自动完成扩展程序。我怎么能做到? 我的html 请为所有文本框输入一个通用类名,并使用jQuery自动完成即可 $(".auto").autocomplete({ source: "../Ajax/AjaxGetData.ashx, minLength: 2, select: function(event, ui) {
name=“txtQtyPkgs”
的对象应用相同的自动完成扩展程序。我怎么能做到?
我的html
请为所有文本框输入一个通用类名,并使用jQuery自动完成即可
$(".auto").autocomplete({
source: "../Ajax/AjaxGetData.ashx,
minLength: 2,
select: function(event, ui) {
$(this).val(ui.item.value);
}
});
详情请参阅。
我要做的是创建一个名为auto的类,并将其分配给所有文本框。因此,当用户输入值时,它将进入处理程序页面(asp.net),或者您可以使用.php页面。在该处理程序页面中,我使用Sql的like
操作符从数据库中选择数据。选择值后,只需Response.Write()
(在asp.net中)或echo
(在php中请参阅)发送数据。数据以JSON
格式发送
[ { "id":"XYZ" , "label":"XYZ" , "value": "XYZ"}]
以上是JSON的格式
对于所有自动建议,您可能拥有大量数据。为此,您必须获取执行查询后返回的结果总数并进行循环。初始化字符串变量,默认值为“[”
,并将字符串附加到{“id”:“data”、“label:data”、“value”:“data”}
(这构成了一个JSON对象)。如果它包含的内容不止一个,只需添加一个,
,并在末尾执行循环,将“]”
添加到字符串中
因此,ur数组的格式为
[ { "id":"XYZ1" , "label":"XYZ1" , "value": "XYZ1"}, { "id":"XYZ2" , "label":"XYZ2" , "value": "XYZ2"}]
['表示数组的开始,']'表示数组的结束
{`表示对象的开始,'}'表示结束
请参考了解更多信息
$(document).ready(function () {
AuctoCmplBuyer();
Auctocomplete functionality to each textbox
$(".auto").autocomplete({ source: AuctoCmpData });
});
function AuctoCmplBuyer() {
$.ajax({
type: "POST",
url: "../service/TWWebService.asmx/XmlData",
data: "{strData:'BuyerList'}",
contentType: "application/json; charset=UTF-8",
dataType: "xml",
success: function (msg) {
$(msg).find('Table').each(function () {
rowObj = new Object();
rowObj.col1 = $(this).find('UserDispName').text() + '-' + $(this).find('UserID').text();
AuctoCmpData.push(rowObj);
});
}
});
}
我是这样做的……我不明白你说“哈里”的方式。在我的情况下,我收集了数据(数组)…而不是每次都打电话..我如何用数组做到这一点..是的,只是那样。可能有很多值。所以你需要添加值。请在这里使用XML查询答案。我只是替换XML,并在页面加载期间加载整个值。我只是建议仅当用户按键时获取数据的方法。我是rite吗?是的…我放弃了你的方法,但没有得到我想要的方法..请查看reff的更新问题并告诉我..我错在哪里添加StrData=“[”,在$(msg)之上。在循环(.each)之后查找(){(…)};和StrData=StrData+“]”。因此,你的StrData将以[{”“;”“}的形式出现。但是现在它是以这种形式出现的{”“,”“}.希望你得到了我,这对我有用..当我在noraml Html上尝试时..但是我如何在flexgride控件内的textbox上做到这一点。。。。
[ { "id":"XYZ" , "label":"XYZ" , "value": "XYZ"}]
[ { "id":"XYZ1" , "label":"XYZ1" , "value": "XYZ1"}, { "id":"XYZ2" , "label":"XYZ2" , "value": "XYZ2"}]
$(document).ready(function () {
AuctoCmplBuyer();
Auctocomplete functionality to each textbox
$(".auto").autocomplete({ source: AuctoCmpData });
});
function AuctoCmplBuyer() {
$.ajax({
type: "POST",
url: "../service/TWWebService.asmx/XmlData",
data: "{strData:'BuyerList'}",
contentType: "application/json; charset=UTF-8",
dataType: "xml",
success: function (msg) {
$(msg).find('Table').each(function () {
rowObj = new Object();
rowObj.col1 = $(this).find('UserDispName').text() + '-' + $(this).find('UserID').text();
AuctoCmpData.push(rowObj);
});
}
});
}