【问题标题】:JQuery autocomplete only if certain condition is met仅当满足特定条件时,JQuery 才会自动完成
【发布时间】:2016-03-09 09:58:32
【问题描述】:

我正在为我的.aspx 页面中的文本框使用 JQuery 自动完成功能。该页面包含一个下拉菜单,用户可以从中选择几个不同的类别,并与一个文本框相结合,他们可以在其中输入搜索词。现在,问题是我只需要自动完成功能即可为其中一个类别选项工作。 我的代码看起来像这样: .aspx:

<asp:DropDownList ID="DropDownList1" runat="server"  AutoPostBack="true" style="margin-left: 55px; margin-right: 10px;" Height="31px" >
               <asp:ListItem  Text="Name" Value="Name"></asp:ListItem>
               <asp:ListItem Text="JobTitle" Value="JobTitle"> </asp:ListItem>
                <asp:ListItem Text="City" Value="City"></asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"  ></asp:TextBox>

下拉/文本框的代码:

void ResultsFilter()
{
    if (DropDownList1.SelectedValue.ToString() == "Name")
    {

        ObjectDataSource1.FilterExpression = "Name LIKE '%" + TextBox1.Text + "%' ";

    }
    else if (DropDownList1.SelectedValue.ToString() == "JobTitle")
    {

        ObjectDataSource1.FilterExpression = "JobTitle LIKE '%" + TextBox1.Text + "%' ";

    }
    else if (DropDownList1.SelectedValue.ToString() == "City")
    {

        ObjectDataSource1.FilterExpression = "City LIKE '%" + TextBox1.Text + "%' ";

    }
 }

以及用于自动完成的 Javascript:

<script type="text/javascript">
     $(function() {
        var availableTutorials = [

           "Director",
           "Broker",
           "Medical",
           "R&D",
           "Sales Executive",

        ];
         $("#TextBox1").autocomplete({
            minChars: 0,
            delay: 0,
            source: availableTutorials, minLength:0
        }).on('focus', function() { $(this).keydown();

        });

     });
  </script>

所以基本上我只希望在(DropDownList1.SelectedValue.ToString() == "JobTitle") 应用时应用自动完成功能。不知道如何使用 Javascript/Code 来做到这一点。非常感谢任何帮助!

【问题讨论】:

    标签: javascript c# jquery asp.net autocomplete


    【解决方案1】:

    你可以这样做:

    if($('#<%= DropDownList1.ClientID %>').val() === 'JobTitle'){
        $("#<%= TextBox1.ClientID %>").autocomplete({ 
          // code
        });
    }
    

    你可以在焦点上初始化它而不是加载:

    $("#<%= TextBox1.ClientID %>").on("focus", function(){
      if($('#<%= DropDownList1.ClientID %>').val() === 'JobTitle'){
          $(this).autocomplete({ 
            // code
          });
       }
    });
    

    【讨论】:

    • 谢谢,我试过了,但收到错误“当前上下文中不存在名称'DropDownList1'”
    • 其实是一个简单的例子 'if ($('#DropDownList1').val()==='JobTitle') { $("#TextBox1").autocomplete // code Your答案让我到了那里,所以我会接受它作为正确答案
    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2018-09-24
    • 2020-01-10
    • 2013-02-21
    相关资源
    最近更新 更多