一個小的功能,也體現了了這幾天寫程序過程中的遇到的一些常發事件,准備有時間研究一下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>