//智能搜索提示 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('中文輸入:結束'); }); })
開始和結束代表着事件的開始捕捉和結束捕捉
,這個做的更好一些能在后台加入緩存處理嗎。還請大神指教
積累小的知識,才能成就大的智慧