基于 jQuery實現(xiàn)靈活可配置的輸入框驗證功能(最新推薦)
在 Web 表單開發(fā)中,輸入框驗證是保障數(shù)據(jù)準確性和安全性的關(guān)鍵環(huán)節(jié)。無論是用戶注冊、信息提交還是數(shù)據(jù)錄入場景,都需要對用戶輸入內(nèi)容進行合法性檢查。本文將介紹如何使用 HTML、CSS 和 jQuery 構(gòu)建一個可靈活配置的輸入框驗證系統(tǒng),輕松應(yīng)對不同類型的驗證需求。
一、功能概述與應(yīng)用場景
該輸入框驗證系統(tǒng)支持以下核心功能:
- 多類型驗證:可對用戶名、電話、密碼等不同字段設(shè)置獨立的驗證規(guī)則,如長度限制、格式匹配等。
- 實時反饋:用戶輸入時實時檢查,輸入不符合要求時立即顯示錯誤提示。
- 提交前驗證:在表單提交時自動校驗所有字段,確保數(shù)據(jù)完整合法。
適用于用戶注冊表單、訂單填寫、信息修改等各類需要輸入數(shù)據(jù)校驗的業(yè)務(wù)場景。
效果圖:

二、HTML 結(jié)構(gòu)搭建
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>輸入框驗證</title>
<style>
/* 樣式代碼將在下文CSS部分詳細說明 */
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div class="form-container">
<h2>輸入框驗證</h2>
<div class="form-group">
<label for="username">用戶名:</label>
<input type="text" id="username" autocomplete="off">
<div class="error-message" id="usernameError"></div>
</div>
<div class="form-group">
<label for="tel">電話:</label>
<input type="text" id="tel">
<div class="error-message" id="telError"></div>
</div>
<div class="form-group">
<label for="password">密碼:</label>
<input type="password" id="password">
<div class="error-message" id="passwordError"></div>
</div>
<div class="form-group">
<label for="address">地址:</label>
<input type="text" id="address">
<div class="error-message" id="addressError"></div>
</div>
<div class="form-group">
<label for="industry">行業(yè):</label>
<input type="text" id="industry">
<div class="error-message" id="industryError"></div>
</div>
<div class="form-group">
<label for="scol">學校:</label>
<input type="text" id="scol">
<div class="error-message" id="scolError"></div>
</div>
<button id="submitButton">提交</button>
</div>
<script>
// JavaScript實現(xiàn)代碼將在下文JavaScript部分詳細說明
</script>
</body>
</html>HTML 代碼構(gòu)建了表單的基礎(chǔ)結(jié)構(gòu):
- 外層
div(類名form-container)作為表單容器,提供統(tǒng)一的樣式和布局。 - 每個
form-group包裹一個輸入字段,包含label標簽、input輸入框和用于顯示錯誤信息的div(類名error-message)。 submitButton按鈕用于觸發(fā)表單提交和整體驗證邏輯。
三、CSS 樣式設(shè)計
.form-container {
background-color: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
.form-group {
margin-bottom: 15px;
height: 60px;
}
.form-group label {
display: block;
margin-bottom: 5px;
}
.form-group input {
width: 100%;
padding: 8px;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 4px;
}
.form-group input.error {
border-color: #ff0000;
}
.error-message {
color: #ff0000;
font-size: 12px;
}
button {
width: 100%;
padding: 10px;
background-color: #007bff;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
margin-top: 10px;
}
button:hover {
background-color: #0056b3;
}CSS 代碼為表單賦予了美觀且實用的樣式:
form-container設(shè)置了白色背景、圓角邊框和陰影效果,增強視覺吸引力。form-group定義了每個輸入組的間距和高度,確保布局整齊。- 為
input元素設(shè)置默認樣式,當添加error類時(驗證失?。吙蜃?yōu)榧t色以提示用戶。 error-message定義錯誤提示文字的顏色和字體大小,button設(shè)置提交按鈕的背景色、交互效果等。
四、jQuery 功能實現(xiàn)
$(function () {
const $form = $('.form-container');
const $inputs = $form.find('input[type="text"], input[type="password"]');
const inputs = $inputs.map(function () {
const $input = $(this);
const id = $input.attr('id');
const $error = $(`#${id}Error`);
const label = $form.find(`label[for="${id}"]`).text().replace(':', '');
let validationRule;
let errorMessage;
switch (id) {
case 'username':
validationRule = (value) => $.trim(value).length >= 3;
errorMessage = `${label}長度不能少于3個字符`;
break;
case 'tel':
validationRule = (value) => /^\d{11}$/.test($.trim(value));
errorMessage = `${label}必須為11位數(shù)字`;
break;
case 'password':
validationRule = (value) => $.trim(value).length >= 6;
errorMessage = `${label}長度不能少于6個字符`;
break;
case 'address':
validationRule = (value) => $.trim(value)!== '';
errorMessage = `${label}不能為空`;
break;
case'scol':
validationRule = (value) => $.trim(value)!== '';
errorMessage = `${label}名稱不能為空`;
break;
default:
validationRule = (value) => $.trim(value)!== '';
errorMessage = `${label}不能為空`;
}
return {
input: $input,
error: $error,
validationRule,
errorMessage
};
}).get();
function validateInput(inputData) {
const { input, error, validationRule, errorMessage } = inputData;
error.text('');
input.removeClass('error');
const value = input.val();
if (!validationRule(value)) {
error.text(errorMessage);
input.addClass('error');
return false;
}
return true;
}
$inputs.on('change', function () {
const inputData = inputs.find(item => item.input.is(this));
if (inputData) {
validateInput(inputData);
}
});
$('#submitButton').on('click', function () {
let isValid = true;
inputs.forEach(inputData => {
if (!validateInput(inputData)) {
isValid = false;
}
});
if (isValid) {
alert('輸入驗證成功!');
}
});
});JavaScript 代碼通過 jQuery 實現(xiàn)了核心驗證邏輯:
- 初始化配置:
- 提取所有文本和密碼輸入框,為每個輸入框創(chuàng)建包含驗證規(guī)則、錯誤提示信息、輸入元素和錯誤顯示元素的配置對象。
- 使用
switch語句根據(jù)輸入框id設(shè)置不同的驗證規(guī)則和錯誤提示,支持自定義擴展。 - 單個驗證函數(shù):
validateInput函數(shù)負責執(zhí)行單個輸入框的驗證,清空錯誤信息、移除錯誤樣式,根據(jù)驗證規(guī)則判斷輸入是否合法,若不合法則顯示錯誤提示并添加錯誤樣式。 - 實時驗證:為輸入框綁定
change事件,用戶輸入內(nèi)容變化時立即觸發(fā)驗證,提供即時反饋。 - 提交驗證:為提交按鈕綁定
click事件,遍歷所有輸入框進行驗證,只有當所有輸入框都通過驗證時,才提示驗證成功。
五、擴展與使用說明
- 新增驗證字段:只需在 HTML 中添加
form-group結(jié)構(gòu),并在 JavaScript 的switch語句中增加對應(yīng)case配置驗證規(guī)則和錯誤提示。 - 修改驗證邏輯:直接調(diào)整
validationRule函數(shù)內(nèi)的判斷條件,如修改長度限制、正則表達式等。 - 國際化支持:通過修改
errorMessage文本內(nèi)容,可輕松實現(xiàn)多語言錯誤提示。
通過以上代碼和配置,開發(fā)者可以快速搭建功能強大的輸入框驗證系統(tǒng),有效提升表單數(shù)據(jù)質(zhì)量和用戶體驗。
到此這篇關(guān)于基于 jQuery 實現(xiàn)靈活可配置的輸入框驗證功能的文章就介紹到這了,更多相關(guān)jquery輸入框驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一個分享按鈕的插件使用介紹(可擴展,內(nèi)附開發(fā)制作流程)
前幾天由于工作需要制作一個分享按鈕,考慮到后續(xù)其他項目可能也會用到,于是就打算寫成插件化2011-09-09
jQuery使用$.extend(true,object1, object2);實現(xiàn)深拷貝對象的方法分析
這篇文章主要介紹了jQuery使用$.extend(true,object1, object2);實現(xiàn)深拷貝對象的方法,結(jié)合實例形式分析了jQuery中$.extend(true,object1, object2);進行深拷貝操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-03-03
jQuery多級聯(lián)動下拉插件chained用法示例
這篇文章主要介紹了jQuery多級聯(lián)動下拉插件chained用法,結(jié)合實例形式分析了jQuery多級聯(lián)動下拉插件chained的功能與基本使用技巧,需要的朋友可以參考下2016-08-08
jquery實現(xiàn)在頁面加載的時自動為日期插件添加當前日期
這篇文章主要介紹了通過jquery實現(xiàn)在頁面加載的時自動為日期插件添加當前日期,需要的朋友可以參考下2014-08-08
利用jQuery+localStorage實現(xiàn)一個簡易的計時器示例代碼
這篇文章主要給大家介紹了關(guān)于利用jQuery+localStorage實現(xiàn)一個簡易的計時器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-12-12

