濮阳杆衣贸易有限公司

主頁 > 知識庫 > html5自帶表單驗證體驗優(yōu)化及提示氣泡修改功能

html5自帶表單驗證體驗優(yōu)化及提示氣泡修改功能

熱門標(biāo)簽:威海營銷外呼系統(tǒng)招商 ai電銷機器人連接網(wǎng)關(guān) 鶴壁手機自動外呼系統(tǒng)怎么安裝 漳州人工外呼系統(tǒng)排名 農(nóng)村住宅地圖標(biāo)注 鄭州電銷外呼系統(tǒng)違法嗎 跟電銷機器人做同事 濟南辦理400電話 中紳電銷智能機器人

html5自帶表單驗證

很多朋友進行表單驗證的時候,都是自己用jquery或者js手工驗證,或者用一下jquery插件進行驗證。因為大家覺得html5自帶驗證不是很好!其實,現(xiàn)在html5自帶表單驗證,目前已經(jīng)蠻強大了。我們來看下我用純html5寫的一個表單驗證吧!體驗一下!

大家覺得這個效果怎么樣呢?

這個效果的精華是加了三個圖片!

.myform select:required,
.myform input:required,
.myform textarea:required {
    background: #fff url(http://sandbox.runjs.cn/uploads/rs/216/0y89gzo2/star.jpg) no-repeat 99% center;
}
.myform select:required:valid,
.myform input:required:valid,
.myform textarea:required:valid {
    background: #fff url(http://sandbox.runjs.cn/uploads/rs/216/0y89gzo2/right.png) no-repeat 99% center;
    box-shadow: 0 0 5px #5cd053;
    border-color: #28921f;
}
.myform select:focus:invalid,
.myform input:focus:invalid,
.myform textarea:focus:invalid {
    background: #fff url(http://sandbox.runjs.cn/uploads/rs/216/0y89gzo2/error.png) no-repeat 99% center;
    box-shadow: 0 0 5px #d45252;
    border-color: #b03535
}

然后做了一個監(jiān)聽事件:

oninvalid="this.setCustomValidity('請輸入正確的號碼');" oninput="setCustomValidity('')"

驗證密碼是否一致的時候,用了一個js

function checkPassword() {
    var pass1 = document.getElementById("Password");
    var pass2 = document.getElementById("Repassword");

    if (pass1.value != pass2.value)
        pass2.setCustomValidity("兩次輸入的密碼不匹配");
    else
        pass2.setCustomValidity("");
}

這樣就完成了效果!

假如你覺得,這個自帶的氣泡也很難看!如下圖: 我想換掉!

在谷歌29之前的版本,我們是可以用偽元素來修改氣泡!

::-webkit-validation-bubble { min-width:152px; margin-top: -1px;}
::-webkit-validation-bubble-arrow { border: 1px solid #F7CE39; background: #FFFBC7; /* position:relative; */ top: 4px; left: 0px; }
::-webkit-validation-bubble-arrow-clipper { text-align: center; }
::-webkit-validation-bubble-heading { color: #444; }
::-webkit-validation-bubble-message { border: 1px solid #F7CE39; background: #FFFBC7; border-radius: 3px; }
::-webkit-validation-bubble-text-block { font-size: 12px; }

但是呢,這個方法后面被廢棄掉了!你會發(fā)現(xiàn)修改氣泡沒有反應(yīng)!那么怎么修改氣泡樣式呢?這里就稍微麻煩一些了!思路大概是我們先阻止默認(rèn)氣泡,然后創(chuàng)建新的氣泡!

阻止默認(rèn)氣泡

<form>
    <input required>
    <button>Submit</button>
</form>
<script>
    document.querySelector( "input" ).addEventListener( "invalid",
        function( event ) {
            event.preventDefault();
        });
</script>

創(chuàng)建新的UI

代碼大致如下:

function replaceValidationUI( form ) {
    //阻止氣泡
    form.addEventListener( "invalid", function( event ) {
        event.preventDefault();
    }, true );
    // 支持Safari, iOS Safari, Android 瀏覽器
    // 默認(rèn)提交表格
    form.addEventListener( "submit", function( event ) {
        if ( !this.checkValidity() ) {
            event.preventDefault();
        }
    });
    // 新增錯誤提示的容器
    form.insertAdjacentHTML( "afterbegin", "<ul class='error-messages'></ul>" );
    var submitButton = form.querySelector( "button:not([type=button]), input[type=submit]" );
    submitButton.addEventListener( "click", function( event ) {
        var invalidFields = form.querySelectorAll( ":invalid" ),
            listHtml = "",
            errorMessages = form.querySelector( ".error-messages" ),
            label;
        for ( var i = 0; i < invalidFields.length; i++ ) {
            label = form.querySelector( "label[for=" + invalidFields[ i ].id + "]" );
            listHtml += "<li>" + 
                label.innerHTML +
                " " +
                invalidFields[ i ].validationMessage +
                "</li>";
        }
        // 把錯誤的信息放到錯誤容器里面
        errorMessages.innerHTML = listHtml;
        // 給第一個錯誤的input選中
        // 錯誤信息容器顯示
        if ( invalidFields.length > 0 ) {
            invalidFields[ 0 ].focus();
            errorMessages.style.display = "block";
        }
    });
}
// 替換form中所有的驗證UI
var forms = document.querySelectorAll( "form" );
for ( var i = 0; i < forms.length; i++ ) {
    replaceValidationUI( forms[ i ] );
}

總結(jié)

以上所述是小編給大家介紹的html5自帶表單驗證體驗優(yōu)化及提示氣泡修改功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

標(biāo)簽:咸陽 紅河 蘇州 營口 文山 萍鄉(xiāng) 惠州 甘南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5自帶表單驗證體驗優(yōu)化及提示氣泡修改功能》,本文關(guān)鍵詞  html5,自帶,表單,驗證,體驗,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5自帶表單驗證體驗優(yōu)化及提示氣泡修改功能》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5自帶表單驗證體驗優(yōu)化及提示氣泡修改功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    五原县| 昭苏县| 惠来县| 利辛县| 修水县| 宁国市| 和龙市| 龙井市| 灵台县| 梓潼县| 鄂伦春自治旗| 汕尾市| 五华县| 高安市| 两当县| 通许县| 蒙自县| 耿马| 手游| 临汾市| 马鞍山市| 鹤山市| 拉孜县| 凌源市| 扎鲁特旗| 闸北区| 乡宁县| 阳高县| 和政县| 阿图什市| 苗栗市| 延庆县| 庆城县| 武夷山市| 东海县| 宽城| 济宁市| 五寨县| 隆尧县| 涡阳县| 隆安县|