在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js無法監(jiān)聽input值的變化,如何解決?

js無法監(jiān)聽input值的變化,如何解決?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

    <input type="text" id="input" value="0">
    <span class="btn">+1</span>

    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
    <script>
        $(function(){
            /*改變input值*/
            $(".btn").on("click",function(){
                let new_value =  parseInt($("#input").val()) + 1;
                $("#input").val(new_value);
            });
            /*監(jiān)聽input值的變化*/
            $("#input").bind("input propertychange",function(){
                console.log($(this).val());
            });
        });
    </script>
    
</body>
</html>

如上代碼,通過程序改變input值時(shí),無法監(jiān)聽到input值的變化,請(qǐng)問該如何改進(jìn)?

注意是通過js改變input值,而不是鍵盤輸入。請(qǐng)勿在js改變input值的函數(shù)里觸發(fā)數(shù)據(jù)監(jiān)聽函數(shù),上述代碼僅作示意

謝謝。

回答
編輯回答
綰青絲

不用監(jiān)聽input事件。直接取值比較

2017年10月12日 07:44
編輯回答
蝶戀花

當(dāng) js 修改 input 內(nèi)容時(shí)可以手動(dòng)觸發(fā)事件執(zhí)行: $("#input").trigger('input');

2018年6月20日 09:33
編輯回答
她愚我

控制臺(tái)打印出來了啊~或者試試keyup

2018年2月14日 08:22
編輯回答
冷眸

既然是js改變的就代表知道調(diào)用的時(shí)機(jī)
改變的時(shí)候調(diào)用change里的方法就行了

2017年9月25日 11:49
編輯回答
浪婳

用defineProperty吧

<input type="text"  id="aaa" value="1" />
<button id="btn">add1</button>

             var aaa =document.getElementById("aaa");
            var btn =document.getElementById("btn");
            var obj = {};
            btn.onclick=function(){
                if(aaa.value){
                    obj.val = parseInt(aaa.value)+1;
                }else{
                    obj.val = 1;
                }
            }
            valcahnge(aaa,function(){
                console.log(aaa.value);
            });
            function valcahnge(dom,fn){                    
                Object.defineProperty(obj,'val',{
                    get:function(){                    
                        return this._val;
                    },
                    set:function(val){
                        dom.value = val;
                        fn();
                        this._value=val;
                    }
                });            
            }
2018年1月12日 16:03
編輯回答
黑與白

邏輯有問題,很多時(shí)候做不出來不是沒有這個(gè)方法而是你的思路錯(cuò)了,既然js控制input變化,那就只需要同時(shí)調(diào)用相應(yīng)的方法

2017年4月27日 11:39