Form表單練習(xí)

label 與 input

label:標(biāo)簽,在表單中與 input 標(biāo)簽綁定使用。
eg:
1.顯式聯(lián)系 —— label 的 for 屬性與 input 的 id 屬性對應(yīng)

<form>
  <label for="male">Male</label>
  <input type="radio" name="sex" id="male" />
  <br />
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>

label 的 for 屬性與 id 和他相同的 input 元素綁定。
input 的 name 屬性為 input 元素的名稱,用于對提交到服務(wù)器后的表單數(shù)據(jù)進行標(biāo)識,或在客戶端通過 js 引用表單數(shù)據(jù)。注:只有設(shè)置了 name 屬性的表單元素才能在提交表單時傳遞它們的值。
如上,type 為 radio 的兩個 input,name 相同,則 radio 的作用范圍就在這兩個 input 上,即這個 input 里面,只有一個是能被選中的。若兩個 input 的 name 不同,則兩個 input 是否被選中彼此無關(guān)。

2.隱式聯(lián)系 —— label 標(biāo)簽中放入 input 標(biāo)簽,無需 for 與 id

<label>Date of Birth: <input type="text" name="DofB" /></label>
  1. td 中的 label 與 input 對齊:
label{
      line-height: 35px;
      height: 35px;
      display: inline-block;
}
input{
      vertical-align: middle;
}

input新特性練習(xí)

html部分:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="./index.css">
    <title>form & input</title>
</head>
<body>
    <form action="MAILTO:1230@qq.com" method="post" class="container">
        <table>
            <tr>
                <td class="left"><label for="username">用戶名:</label></td>
                <td class="right"><input class="input" type="text" id="username"></td>
                <td class="note">
                    <i class="warning"></i>
                    <span class="warning-text">8-12位數(shù)字、字母、下劃線</span>
                </td>
            </tr>
            <tr>
                <td class="left"><label for="password">密碼:</label></td>
                <td class="right"><input class="input" type="password" id="password"></td>
                <td class="note">
                    <i class="warning"></i>
                    <span class="warning-text">8-12位數(shù)字、字母、下劃線</span>
                </td>
            </tr>
            <tr>
                <td class="left"><label for="re-password">確認(rèn)密碼:</label></td>
                <td class="right"><input class="input" type="text" id="re-password"></td>
                <td class="note">
                    <i class="warning"></i>
                    <span class="warning-text">8-12位數(shù)字、字母、下劃線</span>
                </td>
            </tr>
            <tr>
                <td class="left"><label for="identify">驗證碼:</label></td>
                <td class="right"><input class="input" type="text" id="identify"></td>
                <td class="note">
                    <i class="warning"></i>
                    <span class="warning-text">8-12位數(shù)字、字母、下劃線</span>
                </td>
            </tr>
            <tr>
                <td class="left"><label>性別:</label></td>
                <td class="right">
                    <label for="male">男:</label>
                    <input type="radio" checked="checked" class="sex" name="sex" id="male">
                    <label for="female">女:</label>
                    <input type="radio" class="sex" name="sex" id="female">
                </td>
            </tr>
            <tr>
                <td class="left"><label>性別:</label></td>
                <td class="right">
                    <label for="amale">男:</label>
                    <input type="radio" checked="checked" class="sex" name="sexa" id="amale">
                    <label for="afemale">女:</label>
                    <input type="radio" class="sex" name="sexa" id="afemale">
                </td>
            </tr>
            <tr>
                <td class="left"><label for="age">年齡:</label></td>
                <td class="right"><input class="input" type="number" id="age"></td>
                <td class="note">
                    <i class="warning"></i>
                    <span class="warning-text">8-12位數(shù)字、字母、下劃線</span>
                </td>
            </tr>
            <tr>
                <td class="left"><label for="date">出生日期:</label></td>
                <td class="right"><input type="date" id="date"></td>
            </tr>
            <tr>
                <td class="left"><label for="email">郵箱:</label></td>
                <td class="right"><input class="input" type="email" id="email"></td>
                <td class="note">
                    <i class="warning"></i>
                    <span class="warning-text">8-12位數(shù)字、字母、下劃線</span>
                </td>
            </tr>
            <tr>
                <td class="left"><label for="education">學(xué)歷:</label></td>
                <td class="right">
                    <select name="education" id="education">
                        <option value="volvo">高中</option>
                        <option value="saab">學(xué)士</option>
                        <option value="fiat">碩士</option>
                        <option value="audi">博士</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td class="left"><label>愛好:</label></td>
                <td class="right">
                    <label for="swim">游泳</label>
                    <input type="checkbox" class="hobby" name="swim" id="swim">
                    <label for="badminton">羽毛球</label>
                    <input type="checkbox" class="hobby" name="badminton" id="badminton">
                    <label for="tennis">網(wǎng)球</label>
                    <input type="checkbox" class="hobby" name="tennis" id="tennis">
                    <label for="basketball">籃球</label>
                    <input type="checkbox" class="hobby" name="basketball" id="basketball">
                </td>
            </tr>
        </table>
        <fieldset class="health">
            <legend>健康信息</legend>
            <label for="stature">身高(cm)</label>
            <input type="number" name="stature" id="stature">
            <br>
            <label for="weight">體重(kg)</label>
            <input type="number" name="weight" id="weight">
        </fieldset>
        <input type="submit" value="提交" class="submit">
        <input type="reset" value="重置" class="reset">
    </form>
</body>
<script src="./index.js"></script>
</html>

scss部分

樣式使用了sass,使用方法見http://www.itdecent.cn/p/ff3494166bfb

.container {
  width: 600px;
  border: 1px solid #ff8d13;
  border-radius: 10px;
  padding: 10px;
  text-align: center;
  position: relative;
  margin: 100px auto;
  td {
    height: 35px;
    vertical-align: middle;
    padding: 0;
  }
  .left {
    text-align: right;
    padding-right: 20px;
  }
  .right {
    text-align: left;
    .sex, .hobby {
      vertical-align: middle;
    }
    .input {
      width: 250px;
    }
    label {
      line-height: 35px;
      height: 35px;
      display: inline-block;
    }
  }
  .note {
    font-size: 12px;
    color: #aaa;
    .warning{
      display: inline-block;
      width: 20px;
      height: 20px;
      vertical-align: middle;
    }
    .warning-text{
      display: inline-block;
      height: 34px;
      line-height: 34px;
    }
  }
  input {
    height: 24px;
    border-radius: 5px;
    border: 1px solid #ccc;
  }
  table {
    margin: 10px;
  }
  .health {
    margin: 10px;
    input {
      margin: 5px;
    }
  }
}

js部分

function formFunction() {
    let eles = {};
    //用戶名 8-12位 字母、數(shù)字、下劃線
    let username = document.querySelector('#username');
    let usernameFlag = false;
    username.onblur = () => {
        let length = username.value.length;
        let reg = /^(\w){8,12}$/.test(username.value);
        usernameFlag = regJudge(username, reg);
    };
    eles.username = {
        key:username,
        flag: usernameFlag
    };
    //密碼 8-12位 字母、數(shù)字、下劃線
    let password = document.querySelector('#password');
    let passwordFlag = false;
    password.onblur = () => {
        let length = password.value.length;
        let reg = /^(\w){8,12}$/.test(password.value);
        passwordFlag = regJudge(password, reg);
    };
    eles.password = {
        key:password,
        flag: passwordFlag
    };

    //密碼 8-12位 字母、數(shù)字、下劃線
    let repassword = document.querySelector('#re-password');
    let repasswordFlag = false;
    repassword.onblur = () => {
        let length = repassword.value.length;
        let reg = /^(\w){8,12}$/.test(repassword.value);
        repasswordFlag = regJudge(repassword, reg);
    };
    eles.repassword = {
        key:repassword,
        flag: repasswordFlag
    };
    //驗證碼:6位字母
    let identify = document.querySelector('#identify');
    let identifyFlag = false;
    identify.onblur = () => {
        let length = identify.value.length;
        let reg = /^([a-zA-Z]){6}$/.test(identify.value);
        identifyFlag = regJudge(identify, reg);
    };
    eles.identify = {
        key:identify,
        flag: identifyFlag
    };
    //驗證碼:6位字母
    let email = document.querySelector('#email');
    let emailFlag = false;
    email.onblur = () => { document.querySelector('#email');
        let length = email.value.length;
        let reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$/.test(email.value);
        emailFlag = regJudge(email, reg);
    };
    eles.email = {
        key:email,
        flag: emailFlag
    };

    let submit =  document.querySelector('.submit');
    submit.onclick = () => {
        if(!(usernameFlag && passwordFlag && repasswordFlag && identifyFlag && emailFlag)){
            alert('請將信息填寫完整!');
            for(let key in eles){
                let item = eles[key].key;
                let itemFlag = eles[key].flag;
                regJudge(item, itemFlag);
            }
            return false;
        }
    }
}

function regJudge(ele, reg) {
    let warningIcon = ele.parentNode.parentNode.querySelector('.warning');
    if(reg){
        warningIcon.style.background = 'url("./img/right.png")no-repeat 0 0/20px';
        return true;
    }else{
        warningIcon.style.background = 'url("./img/error.png")no-repeat 0 0/20px';
        return false;
    }
}

formFunction();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評論 19 139
  • 1.form表單有什么作用?有哪些常用的input 標(biāo)簽,分別有什么作用? HTML 表單用于接收不同類型的用戶輸...
    大胡子歌歌閱讀 980評論 0 1
  • HTML標(biāo)簽解釋大全 一、HTML標(biāo)記 標(biāo)簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,533評論 1 41
  • 本人做php的,最近發(fā)現(xiàn)JS真的是博大精深啊,比PHP難.在HTML中,表單是由form元素來表示的,但是在jav...
    linfree閱讀 2,342評論 3 17
  • 像是永遠走在一個黑暗的隧道里 突然就被一片烏云籠罩 抑郁癥并不孤單,概率為1/3 抑郁癥癥可以戰(zhàn)勝 做有意義的事 ...
    Spencer成長持續(xù)閱讀 228評論 0 0

友情鏈接更多精彩內(nèi)容