单击按钮时如何在自动填充文本框中填充数据?

时间:2014-06-11 03:12:01

标签: javascript jquery asp.net vb.net jquery-autocomplete

我有一个带有jquery自动完成功能的文本框。如果' /'它会根据条件填充数据。输入然后输入一个字符。但是我想在点击按钮时填充自动完成列表中的所有数据,尽管文本框中有数据。

我的按钮:

 <asp:Button ID="Button2" runat="server" Text="Button" />

我的自动完成功能以及填充数据的条件是:

<script type="text/javascript">

  function pageLoad(sender, args) {
  $(function () {
    $("#<%=txtCu.ClientID %>").autocomplete({
        source: function (request, response) {
         if(request.term.indexOf("/") == (request.term.length-1) && enterFlag)
                {
             var term = request.term.slice(0,-1)
              $.ajax({
                url: '<%=ResolveUrl("~/Webservice.asmx/GetCus") %>',
                data: "{ 'prefix': '" + term + "'}",
                dataType: "json",
                type: "POST",
                async: false,
                mustMatch: true,
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    response($.map(data.d, function (item) {
                        return {
                            label: item.split('^')[0],
                            val: item.split('^')[1]
                        }
                    }))
                },
                error: function (response) {

                },
                failure: function (response) {

                 }
              });
           };
         },
        select: function (e, i) {
            $("#<%=hdnCr.ClientID %>").val(i.item.val);
            if (i.item.val == "No Records Found") {
                $("#<%=hdnCr.ClientID %>").val(-1);
                document.getElementById('<%=txtCu.ClientID%>').value = "";
                return false;
            }
            checkddlcustomerinfo();
        },
        minLength: 0
    }).bind('focus', function () { $(this).autocomplete("search"); })
    .data("autocomplete")._renderItem = function (ul, item) {

        return $("<li></li>").data("item.autocomplete", item).append("<div><table><tr><td width='200px'>" + item.label + "</td>" + "<td width='110px'>" + item.val.split('~')[6] + "</td>" + "<td>" + item.val.split('~')[4] + "</td></tr></table></div>").appendTo(ul);

     };
});

}

2 个答案:

答案 0 :(得分:1)

执行此操作以获得预期结果

ASP按钮,添加类属性CssClass

<asp:Button ID="Button2" runat="server" Text="Button" CssClass="btn"/>

和jQuery Part

$(document).on("click","btn",function(e){
     e.preventDefault();
     $("#<%=txtCu.ClientID %>").autocomplete("search", "");
     $("#<%=txtCu.ClientID %>").autocomplete("select",function (e, i) {
        $("#<%=hdnCr.ClientID %>").val(i.item.val);
        if (i.item.val == "No Records Found") {
            $("#<%=hdnCr.ClientID %>").val(-1);
            document.getElementById('<%=txtCu.ClientID%>').value = "";
            return false;
        }
        checkddlcustomerinfo();
       }
     );
});

关闭autocomplete外的click

$(document).on('click', function(e){ 
    var target = $(e.target);
    if(target.attr("id") != "txtCu" && target.attr("class") != "btn")
    {
        $("#<%=txtCu.ClientID %>").autocomplete('close');

    }
});

注意:您必须在自动填充中设置minLength:0

正在使用 DEMO

答案 1 :(得分:0)

点击此修改自动填充代码:

$.ajax({
      url: '<%=ResolveUrl("~/Webservice.asmx/GetCus") %>',
      data: "{ 'prefix': '" + term + "'}",
      dataType: "json",
      type: "POST",
      async: false,
      mustMatch: true,
      contentType: "application/json; charset=utf-8",
      success: function (data) {
           response($.map(data.d, function (item) {
                return {
                     label: item.split('^')[0],
                     val: item.split('^')[1]
                }
           }))
           $('.ui-autocomplete').hide();   // <-- this line
      },

编辑XHTML:

<asp:Button ID="Button2" runat="server" Text="Button" Class="myBtn"/>

PS。它可能是CssClass="myBtn"没有使用Web表单

然后是jQuery:

$(function(){
  $(document).on('click', '.myBtn', function(e){
    e.preventDefault();
    //maybe a prevent propigation line too just for other browsers like IE
    $('.ui-autocomplete').show();
  });
});

});

相关问题