jQuery UI Autocomplete 控件简单用法,在PC网站和微信网页中增加读取淘宝数据源

本文介绍如何在原有搜索控件基础上增加自动补全功能,通过引入jQuery库及自定义JavaScript代码,实现输入关键词时的实时建议显示,并提供PC端和微信端的效果预览。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在原有控件中增加,最小改动

原有搜索代码:

 <form action='<%linkurl("gsearch")%>'>
                            <input id="keywords" name="keywords" type="text" autocomplete="off" placeholder="请输入商品关键词、淘宝链接或者淘宝商品标题">
                            <button type="submit" class="btn">搜索</button>
                        </form>

 

2、改造后代码

2.1、引用必要文件,点这里打包下载

jquery-ui-1.8.17.custom.css

jquery-1.7.1.min.js

jquery-ui-1.8.17.custom.min.js

jquery-ui-widget-combobox.js

 

2.2、增加控件事件

控件ID为:keywords
$("#keywords").autocomplete({
                source: "remoteJSON.ashx",
                minLength: 2
            });

 

3、读取远端数据

remoteJSON.ashx

<%@ WebHandler Language="C#" Class="remoteJSON" %>

using System;
using System.Web;
using System.Text;
using Newtonsoft;

public class remoteJSON : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        // 查询的参数名称默认为term
        string query = context.Request.QueryString["term"];
        StringBuilder builder = new StringBuilder();
        SuguestRoot str = get_Suggect(query);
        builder.Append("[");
        if (str != null)
        {
            for (int i = 0; i < str.result.Count; i++)
            {
                builder.Append("{\"value\":\"");
                builder.Append(str.result[i][0].ToString());
                builder.Append("\",\"label\":\"");
                builder.Append(str.result[i][0].ToString());
                builder.Append("\"},");
            }
        }

        if (builder.Length > 1)
            builder.Length = builder.Length - 1;
        builder.Append("]");

        context.Response.ContentType = "text/javascript";
        context.Response.Write(builder.ToString());
    }
    private SuguestRoot get_Suggect(string q)
    {
        string url = "https://suggest.taobao.com/sug?callback=autocomplete&code=utf-8&q={0}";
        url = string.Format(url, q);
        string s = DTcms.Common.Utils.HttpGet(url);
        SuguestRoot jp = null;
        string str = "";
        try
        {
            str = DTcms.Common.Utils.HttpGet(url);
            str = str.Replace("autocomplete(", "").Replace(")", "");
            jp = (SuguestRoot)Newtonsoft.Json.JsonConvert.DeserializeObject<SuguestRoot>(str);
        }
        catch(Exception ex) {
            //do log 
        }
        return jp;
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }


}

public class SuguestRoot
{
    /// <summary>
    /// Result
    /// </summary>
    public System.Collections.Generic.List<System.Collections.Generic.List<string>> result { get; set; }
}

 

4、效果

 

PC端

微信:

 

转载于:https://www.cnblogs.com/94dazhe/p/7070355.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值