使用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);
                    });
                }
            });
        }