• JS 对输入判断变化屏蔽中文输入法连续输入时触发的事件


    //智能搜索提示
        IntelligenceSearch: function IntelligenceSearch() {
    
            $('#keyWord').on('input', function () {
                if ($(this).prop('comStart')) return;    // 中文输入过程中不截断
                var url = $('#hKeyWord').val();
                var data = { keyword: $('#keyWord').val() };
                $('#words').html('');
                imcis.ajax(url, data, false, function (data) {
                    var option = "";
                    $.each(data, function (key, value) {
                        option += '<option value=' + value + '>';
                    });
                    $('#words').html(option);
                    //alert('H');
                });
            }).on('compositionstart', function () {
                $(this).prop('comStart', true);
            }).on('compositionend', function () {
                $(this).prop('comStart', false);
            });
        }
    复制代码

    HTML以及加载方法:

    复制代码
    <input list="words" autocomplete="off" id="keyWord" style="font-size:12px;" type="text" placeholder="请输入关键字" />
                        <datalist id="words" style="background:red">
    
                            @*<option value="Internet Explorer">
                            <option value="Firefox">
                            <option value="Chrome">
                            <option value="Opera">
                            <option value="Safari">
                            <option value="Sogou">*@
                        </datalist>
    复制代码

    采用H5的datalist去提示

     $(function () {
                MedicalCase.IntelligenceSearch();
            });

    前台加载一下

    具体的原理如下:

    复制代码
          $(function () {
                    $('#text').on('input', function () {
                        if ($(this).prop('comStart')) return;    // 中文输入过程中不截断
    
                        var value = $(this).val();
                        console.log('当前输入:' + value);
                        //if (Str.byteLen(value, 3) > 24) {
                        //    $(this).val(Str.getMaxlen(value, 24));
                        //}
                    }).on('compositionstart', function () {
                        $(this).prop('comStart', true);
                        console.log('中文输入:开始');
                    }).on('compositionend', function () {
                        $(this).prop('comStart', false);
                        console.log('中文输入:结束');
                    });
                })
    复制代码

    开始和结束代表着事件的开始捕捉和结束捕捉

    ,这个做的更好一些能在后台加入缓存处理吗。还请大神指教

    积累小的知识,才能成就大的智慧
  • 相关阅读:
    利用 XNA 实现 Windows Phone 7 上的电流效果【转载】
    windowsphone 程序员开发工具【http://mobile.csdn.net/a/20120610/2806537.html 转载】
    windows phone xna 3d开发
    关于Windows7升级到Windows8喇叭出现红色叉号的问题
    iphone 学习笔记
    安装android开发环境
    关于编译android程序,期待模拟器,中文路径的问题【转载】
    html css develope iphone application
    windows phone 触控手势
    Iphone 基础教程
  • 原文地址:https://www.cnblogs.com/ylldbk/p/5555622.html
Copyright © 2020-2023  润新知