input的onchange 和oninput事件


一個小的功能,也體現了了這幾天寫程序過程中的遇到的一些常發事件,准備有時間研究一下jQuery和原生js,問題的出現:使用jQuery獲取到的節點到底是屬於什么,有些事件

居然不能用,就如我今天用到的事件 onchange 和oninput ,還有對於onclick 和click,

先總結一下這個小小的功能:輸入框要輸入money,那就只有兩位小數,我們要確保輸多位小數時,不讓他提交,提交按鈕變灰色,當小數點后是兩位則回復按鈕狀態,

onchange事件,監聽input 輸入的值是否符合要求,不符合則改變按鈕狀態:代碼如下:

bid.onchange=function(){
        var num = bid.value;
        var dot = num.split('.');
        if(dot[1]!=null){

            if(dot[1].length>2){
                var addbtn = document.getElementById("addbtn");
                addbtn.setAttribute("disabled",true);
                alert("請保留兩位小數");
            }
        }
    }

oninput事件,隨時監聽input輸入的值,小數點后的位數,當時兩位時,按鈕回復狀態:代碼如下:

bid.oninput=function(){
        var num = bid.value;
        var dot = num.split('.');
        if(dot[1]!=null){

            if(dot[1].length<=2){
                var addbtn = document.getElementById("addbtn");
                addbtn.removeAttribute("disabled");
            }
        }
    };

說一下兩個事件的區別:onchange 當文本框失去焦點時,檢查input里的值是否符合要求,執行函數

           oninput 實時監聽文本框的值,不符合要求事件觸發,(但是雖不符合要求,值卻已經在文本框了)這就為什么兩個事件得同時用

待續。。。jQuery和原生js 對事件的操作支持:

 

  這篇文章的前部分很早就寫完了,最近才明白了,不是jquery和js的問題,是DOM的問題,以前沒意識到這個問題,最近搞清楚了(和別人討論問題時,提到了)恍然大悟,猶如醍醐灌頂值功效。哈哈,感覺使用jquery瞬間輕松了好多,這種感覺是只有個我這種菜鳥才能感受的。

  首先,jquery和DOM 他們各自的屬性方法是不能混用的,簡單說,jquery是方法,DOM是屬性,

    我們使用dom獲取屬性節點,使用jquery方法操作節點,和平共處。

  然后,就涉及相互轉換的問題,看了一些資料,表達一下自己最切實的理解。

    使用$("**")獲取節點,就是jquery對象,使用jquery的方法屬性,

    使用$("**")[index]這樣,就變成了DOM對象,使用DOM方法和屬性。

    使用$($("**")[index]),轉換成jquery對象,使用jquery的方法。

  三句切實理解jquery和DOM的操作方式,希望以后在前端的道路上,勇往直前!

 

 

有什么問題,歡迎吐糟,共同進步!

<h2>現階段目標:能用代碼量解決的問題,就不是問題!</h2>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM