HTML5驗(yàn)證是Web開發(fā)中非常重要的一項(xiàng)技術(shù),利用它可以有效的提高用戶輸入數(shù)據(jù)時的體驗(yàn)和準(zhǔn)確性。然而,在實(shí)際應(yīng)用中,HTML5驗(yàn)證的功能有時仍然無法完全滿足開發(fā)者的要求。在這種情況下,jQuery技術(shù)可以為我們提供很好的選擇來擴(kuò)展HTML5驗(yàn)證功能,并重寫相關(guān)的功能代碼。
jQuery.fn.extend({ validate: function(callback) { var form = $(this); var inputs = form.find('[required]'); inputs.keyup(function() { var currentInput = $(this); var isValid = currentInput.is(':valid'); if (isValid) { currentInput.addClass('valid').removeClass('invalid'); } else { currentInput.addClass('invalid').removeClass('valid'); } }); form.submit(function(e) { var valid = true; inputs.each(function() { var currentInput = $(this); if (!currentInput.is(':valid')) { valid = false; currentInput.addClass('invalid').removeClass('valid'); } else { currentInput.addClass('valid').removeClass('invalid'); } }); if (!valid) { e.preventDefault(); if (typeof callback === 'function') { callback.call(this); } } }); return form; } });
以上是擴(kuò)展HTML5驗(yàn)證的jQuery代碼,它可以擴(kuò)展表單驗(yàn)證。首先,它選取添加了required屬性的元素作為驗(yàn)證的對象,并使用keyup事件來監(jiān)聽用戶輸入。如果用戶輸入的值合法,我們就添加valid類,否則添加invalid類。當(dāng)用戶提交表單時,我們需要檢查每個required元素是否已經(jīng)填寫并且合法。如果合法,我們就添加valid類,否則添加invalid類,并阻止表單的提交。runback函數(shù)可作為回調(diào)函數(shù)來在表單驗(yàn)證失敗時執(zhí)行,從而進(jìn)行相應(yīng)的處理。