Selaa lähdekoodia

解决input的监听事件compositionend比input事件更早触发引起的输入内容后没有执行input监听处理的问题。解决方法:在input监听处理中加上setTimeout处理

raolu 7 vuotta sitten
vanhempi
commit
290ae49b07

+ 3 - 1
html/yszx/css/search-bar.css

@ -36,7 +36,9 @@ html.pixel-ratio-3 .searchbar:after {
    flex-shrink: 1;
}
.searchbar input[type=search] {
.searchbar input[type=search],
.searchbar input[type=text]
 {
    box-sizing: border-box;
    width: 100%;
    height: 100%;

+ 1 - 1
html/yszx/html/select-consult-doctor.html

@ -21,7 +21,7 @@
        <div class="main">
            <div class="searchbar searchbar-init">
                <div class="searchbar-input">
                    <input type="search" placeholder="请输入科室或医生" class="inp-search">
                    <input type="text" placeholder="请输入科室或医生" class="inp-search">
                    <a href="javascript:void(0);" class="searchbar-clear"></a>
                </div>
                <a class="searchbar-cancel">取消</a>

+ 26 - 22
html/yszx/js/select-consult-doctor.js

@ -83,33 +83,37 @@ function getDoctorList(isInit){
function bindEvents(){
    //搜索框事件
    $(".inp-search").on("input",function(e){
        if($(this).prop('comstart')) {
            //console.log("true");
            return;
        }
        var text = $(this).val().trim();
        $searchtResult.hide();
        showSearchSuggest(text);
        //如果有部门信息
        if(text != deptName){
            deptId = '';
        }
        if(text){
            $searchCancelBtn.show();
            $searchCancelBtn.css("opacity","1");
        }else{
            $searchCancelBtn.hide();
            $searchCancelBtn.css("opacity","0");
            mui(".mui-scroll-wrapper").pullRefresh().refresh(true);
            getDoctorList(true);
        }
    }).on('compositionstart', function(){
    $(".inp-search").on('compositionstart', function(){
        $(this).prop('comstart', true);
        //console.log('中文输入:开始');
    }).on('compositionend', function(){
        $(this).prop('comstart', false);
       // console.log('中文输入:结束');
    }).on("input",function(e){
        var $this = $(this);
        setTimeout(function(){
            if($this.prop('comstart')) {
                //console.log("true");
                return;
            }
            var text = $this.val().trim();
            $searchtResult.hide();
            showSearchSuggest(text);
            //如果有部门信息
            if(text != deptName){
                deptId = '';
            }
            if(text){
                $searchCancelBtn.show();
                $searchCancelBtn.css("opacity","1");
            }else{
                $searchCancelBtn.hide();
                $searchCancelBtn.css("opacity","0");
                mui(".mui-scroll-wrapper").pullRefresh().refresh(true);
                getDoctorList(true);
            }
        }, 0)
        
    })
    
    //取消事件