老友記之PHP7留言板開發(JS驗證)

本節JS關鍵詞有:functiononsubmitonclickdocument.getElementsByTagName(這些在前端開發中是常用的,所以必須掌握)

根據步驟一的頁面基礎上加入JS驗證表單事件,提升用戶體驗,也確保后端接收到的用戶提交的數據是預定的。

拿到需求的時候不要急著敲代碼,首先確認一下需要用的到知識點,理清思路,腦子里大概有個方案,特別是當下新技術天天新花樣的時代,我們更應該思路要時刻保持清晰,不管是原生的js還是jquery或者是其他前端框架,萬變不離其宗,只有穩固的js基礎,方能走天下。

下面原生JS驗證留言板表單的時候也是有多種方法可以實現的,這里用的是其中一個常用的,你能發現其他方法嗎,可以在評論區分享個大家,好東西,就是要分享的!~

方法:

  • 1、確定觸發鼠標點擊事件方式,如onclickonsubmitxxx.click(function(){})等等(諸多驗證方式,需要你們日后慢慢發現,神奇的JS世界等著你);

    我給留言板submit按鈕添加了onclick事件,為了觸發checkform函數激活表單驗證;然后又給了form標簽添加了onsubmit="return false;"屬性,為了阻止form表默認的提交事件(阻止事件冒泡);具體看代碼并進行實踐試試看~
    a、示例代碼片段<form name="feedback_form" action="/#" method="post" onsubmit="return false;">

  • 2、定義JS函數;

    a、函數命名以function開頭
    b、選中表單元素用document.getElementsByTagName('input')
    c、阻止冒泡(阻止表單提交,驗證成功才能提交)用return false;
    d、腳本觸發表單提交用document.feedback_form.submit();feedback_form為form表單的name名稱

  • 3、submit標簽中綁定鼠標點擊事件觸發我們定義的JS函數,如表單submit標簽屬性加入onclick="函數名"

    a、示例代碼片段<input type="submit" onclick="checkform()" value="提交您的留言" class="sub" />


完整代碼:
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>留言板_科科分享</title>
        <!-- 2.新建css樣式文件并根據效果圖編寫css代碼 -->
        <link rel="stylesheet" href="feedback.css">
        <!-- 3.js表單驗證 -->
        <script type="text/javascript">
            function checkform(){
                var nickname = document.getElementsByTagName('input')[0].value; // 獲取用戶輸入的姓名
                var tel = document.getElementsByTagName('input')[1].value; // 獲取用戶輸入的聯系方式
                var content = document.getElementsByTagName('textarea')[0].value; // 獲取用戶輸入的留言內容
                // 如果沒有輸入姓名 則提示
                if(nickname == ''){
                    alert('請輸入您的姓名');
                    document.getElementsByTagName('input')[0].focus(); // 將光標定位到姓名輸入框
                    return false; // 阻止冒泡 輸入姓名后才能通過
                }
                // 如果沒有輸入聯系方式 則提示
                if(tel == ''){
                    alert('請輸入您的聯系方式');
                    document.getElementsByTagName('input')[1].focus(); // 將光標定位到聯系方式輸入框
                    return false;  // 阻止冒泡 輸入聯系方式才能通過
                }
                // 如果沒有輸入留言內容 則提示
                if(content == ''){
                    alert('請輸入您的聯系方式');
                    document.getElementsByTagName('textarea')[0].focus(); // 將光標定位到留言內容輸入框
                    return false;  // 阻止冒泡 輸入留言內容才能通過
                }
                document.feedback_form.submit(); // 提交用戶數據到后端action中的地址
            }
        </script>
    </head>
    <body>
        <!-- 工作區,呈現給用戶看的 -->
        <!-- 1.開始搭建腳手架 -->
        <div class="container_box">
            <div class="up">
                <h3 class="title">留言板</h3>
                <h5 class="subtitle">FEEDBACK</h5>
            </div>
            <div class="down">
                <form name="feedback_form" action="/#" method="post" onsubmit="return false;">
                    <div class="input">
                        <input type="text" class="fl" name="name" placeholder="輸入您的姓名" /> 
                        <input type="text" class="fr" name="tel" placeholder="輸入您的聯系方式" />
                    </div>
                    <textarea class="content" cols="30" rows="10" name="nr"></textarea>
                    <input type="submit" onclick="checkform()" value="提交您的留言" class="sub" />
                </form>
            </div>
        </div>
    </body>
</html>

實踐,實踐,實踐。重要的事情喊三遍!!!

好啦,原生JS驗證我們的留言板就到這里,如你有其他驗證方式或者有什么疑惑,歡迎在評論區涂鴉!~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • React中沒有類似Angular那樣的雙向數據綁定,在做一些表單復雜的后臺類頁面時,監聽、賦值、傳遞、校驗時編碼...
    tedyuen777閱讀 9,896評論 1 23
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 27,642評論 1 45
  • 表單基礎知識 在HTML中,表單是由 元素來表示的,而在JS中,表單對應的則是HTMLFormElement類型。...
    oWSQo閱讀 919評論 0 1
  • ??JavaScript 最初的一個應用,就是分擔服務器處理表單的責任,打破處處依賴服務器的局面。 ??盡管目前的...
    霜天曉閱讀 681評論 0 3
  • djnfdknfn nxjfjdkejr jfjfjfjcjfirri
    妖孽播播閱讀 196評論 0 0