亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問為什么input在輸入中文的時候,還在輸入字母的時候就判斷為非空了?

請問為什么input在輸入中文的時候,還在輸入字母的時候就判斷為非空了?

波斯汪 2019-02-12 12:11:37
$("input").on("focus",function(){    $("input").on("keyup",function(){        var neirong = $(this).val();        if($(this).val() != ""){        $(".search-result").css("display","block");        $(".search-result .result-tt").find("a").text("搜"+neirong+"的用戶");        }        if($(this).val() == ""){            $(".search-result").css("display","none");        }    });    });請問一下為什么當我要輸入中文,我中文還沒打出來的時候,搜索框就出來了,這是我代碼的問題,還是我少了哪一步判斷??????前端辣雞小白,希望有大神不嫌棄愿意幫幫我。。感激
查看完整描述

1 回答

?
手掌心

TA貢獻1942條經驗 獲得超3個贊

監聽input事件就行了,你這個嵌套完全沒必要,且把代碼搞復雜了


-------------更新------------------


開始中文輸入時會觸發compositionstart事件

選詞結束后會觸發compositionend事件

類似于keydown和keyup

解決辦法,在外層設置一個狀態flag,在這兩個事件過程中flag=false,在事件完成后flag=true。


<input id="txt" type="text">

<script>

    var flag = true;

    $('#txt').on('compositionstart',function(){

        flag = false;

    })

    $('#txt').on('compositionend',function(){

        flag = true;

    })

    $('#txt').on('input',function(){

        var _this = this

        return setTimeout(function(){

            if(flag && $(_this).val() !== ''){//判斷flag和輸入的值

                return console.log($(_this).val());

            }

        },0)

    })

</script>


查看完整回答
反對 回復 2019-02-13
  • 1 回答
  • 0 關注
  • 369 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號