1. 程式人生 > 其它 >Java Script(三)——onload事件、onclick事件、onsubmit事件、onchange事件、onblur事件

Java Script(三)——onload事件、onclick事件、onsubmit事件、onchange事件、onblur事件

技術標籤:JavaWebjavascriptjsjavacssvue

js中的事件

事件是電腦輸入裝置與頁面進行互動的響應。

常用的事件:

onload 載入完成事件: 頁面載入完成之後,常用於做頁面 js 程式碼初始化操作

onclick 單擊事件: 常用於按鈕的點選響應操作。

onblur 失去焦點事件:常用於輸入框失去焦點後驗證其輸入內容是否合法。

onchange 內容發生改變事件: 常用於下拉列表和輸入框內容發生改變後操作

onsubmit 表單提交事件: 常用於表單提交前,驗證所有表單項是否合法。

事件的註冊:

什麼是事件的註冊(繫結)?

就是告訴瀏覽器,當事件響應後要執行哪些操作程式碼,叫事件註冊或事件繫結。

  1. 靜態註冊事件:通過 html 標籤的事件屬性直接賦於事件響應後的程式碼,這種方式我們叫靜態註冊。

  2. 動態註冊事件:是指先通過 js 程式碼得到標籤的 dom 物件,然後再通過 dom 物件.事件名 = function(){} 這種形式賦於事件響應後的程式碼,叫動態註冊。

    動態註冊基本步驟:

    1、獲取標籤物件 2、標籤物件.事件名 = fucntion(){}

    ​ 和onload載入完成事件結合起來,有了onload動態註冊才實現了後續其它事件的動態註冊。

    動態註冊事件可以做到當頁面載入完成後再執行script中的程式碼。

    靜態註冊事件遵循從上到下依次執行,可能會出錯。

1.onload載入完成事件

onload事件是瀏覽器解析完頁面之後就會自動觸發的事件。

1.1靜態註冊

onlaod屬性 必須寫在body標籤中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS-2021-01-15</title>
    <script type="text/javascript">
        function onloadFun() {
            alert
('靜態註冊 onload 事件,所有程式碼'); }
</script> </head> <body onload="onloadFun()"> </body> </html>

其實這裡面function函式只有一句alert函式,是可以直接寫的,就不用再寫function函數了,區別看第7行。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS-2021-01-15</title>
</head>
<body onload="alert('靜態註冊 onload 事件,所有程式碼!')">

</body>
</html>
1.2動態註冊
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS-2021-01-15</title>
    <script type="text/javascript">
        window.onload=function (){//固定格式
            alert('動態註冊 onload 事件,所有程式碼');
        }
    </script>
</head>
<body>  這裡就不用再寫οnlοad=" "了

</body>
</html>

2.onclick單擊事件

常用於按鈕的點選響應操作。 也分為靜態註冊和動態註冊:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS-2021-01-15</title>
    <script type="text/javascript">
        
        function onclickFun() {
            alert('靜態註冊的 onclick 事件');
        }
        
        window.onload=function () {
            var btn=document.getElementById("btn02");
            btn.onclick =function () {
                alert('動態註冊的 onclick 事件');
            }
            
        }
    </script>
</head>
<body>
<button onclick="onclickFun()">按鈕1</button>     //靜態註冊
<button id="btn02"> 按鈕2 </button>			    //動態註冊
</body>
</html>

3. onblur失去焦點事件

什麼是失去焦點?

想象一下學習通的看視訊過任務點時,每當滑鼠離開視訊介面視訊就會暫停。

我們可以把視訊看作一個焦點,滑鼠離開後就是發生了一次失去焦點事件。

onblur事件在失去焦點後觸發,分為靜態觸發和動態觸發,常用於輸入框失去焦點後驗證其輸入內容是否合法。

console 是控制檯物件 ,是由 JavaScript 語言提供,專門用來向瀏覽器的控制器列印輸出, 用於測試使用

log()是其列印的方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS-2021-01-15</title>
    <script type="text/javascript">
    //靜態註冊失去焦點
    function onblurFun() {
        console.log("靜態註冊失去焦點事件");
        alert('靜態:離開文字框了,親!');
    }
    //動態註冊 onblur 事件
    window.onload=function () {
        var pwd=document.getElementById("passwd");
        pwd.onblur=function () {
            console.log('動態註冊失去焦點事件');
            alert('動態:離開文字框了,親!');
        }
    }
    </script>
</head>
<body>
    使用者名稱:<input type="text" onblur="onblurFun()"> <br/>
    密碼:<input type="passwd" id="passwd"> <br/>
</body>
</html>

4. onchange 內容改變事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS-2021-01-15</title>
    <script type="text/javascript">
        //靜態註冊
        function onchangeFun() {
            alert('女神已經改變了');
        }
        //動態註冊
        window.onload=function () {
            var sel=document.getElementById("select");
            sel.onchange=function (){
                alert('男神已經改變了');
            }
        }
    </script>
</head>
<body>
請選擇你心中的女神:
<select onchange="onchangeFun()">
    <option>--女神--</option>
    <option>dd</option>
    <option>ee</option>
    <option>ff</option>
</select>
<br/> <br/>
請選擇你心中的男神:
<select id="select">
    <option>--男神--</option>
    <option>aa</option>
    <option>bb</option>
    <option>cc</option>
</select>
</body>
</html>
5. onsubmit 表單提交事件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS-2021-01-15</title>
    <script type="text/javascript">
        function onsubmitFun() {
            //假設這一部分內容要驗證所有表單項是否合法,如果有一個不合法就輸出提示,並阻止表單提交
            alert("靜態登錄檔單提交事件----發現不合法");
            return false; //返回false,阻止提交
        }
        window.onload=function (){
            var fm=document.getElementById("form");
            fm.onsubmit=function (){
                //檢查環節
                alert("動態登錄檔單提交事件----發現不合法");
                return false;
            }
        }
    </script>
</head>
<body>
                                                <!--return false 可以阻止 表單提交 -->
<form action="http://www.baidu.com" method="get" onsubmit="return onsubmitFun()">
    <input type="submit" value="靜態註冊"/>     <!-- 提交成功就跳轉到百度-->
</form>

<form action="http://www.baidu.com" method="get" id="form">
    <input type="submit" value="動態註冊"/>
</form>

</body>
</html>