在Web开发中,表单验证是保证数据完整性的重要环节。本文将详细介绍如何使用jQuery实现input表单的非空验证、正则表达式验证以及友好的错误提示功能。
首先确保页面已引入jQuery库:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
创建一个包含多个input的表单:
<form id="myForm">
<div class="form-group">
<label>用户名</label>
<input type="text" name="username" class="form-control" data-regex="^[a-zA-Z0-9_]{4,16}$">
<div class="error-msg"></div>
</div>
<div class="form-group">
<label>邮箱</label>
<input type="text" name="email" class="form-control" data-regex="^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$">
<div class="error-msg"></div>
</div>
<button type="submit" id="submitBtn">提交</button>
</form>
使用jQuery遍历所有input并实现验证:
$(document).ready(function() {
$('#submitBtn').click(function(e) {
e.preventDefault();
let isValid = true;
// 遍历所有input元素
$('#myForm input').each(function() {
const $input = $(this);
const $error = $input.next('.error-msg');
const value = $input.val().trim();
// 清空之前的错误信息
$error.text('');
// 非空验证
if (!value) {
$error.text('此项不能为空');
isValid = false;
return false; // 退出each循环
}
// 正则验证
const regexPattern = $input.data('regex');
if (regexPattern) {
const regex = new RegExp(regexPattern);
if (!regex.test(value)) {
$error.text('格式不正确');
isValid = false;
return false; // 退出each循环
}
}
});
if (isValid) {
alert('表单验证通过');
// 这里可以提交表单
// $('#myForm').submit();
}
});
});
添加一些CSS样式使错误提示更明显:
.error-msg {
color: red;
font-size: 12px;
margin-top: 5px;
}
input.error {
border: 1px solid red;
}
可以进一步优化验证逻辑:
// 在验证失败时添加error类
$input.addClass('error');
// 在验证通过时移除error类
$input.removeClass('error');
除了提交时验证,还可以添加实时验证:
$('#myForm input').on('blur', function() {
const $input = $(this);
const $error = $input.next('.error-msg');
const value = $input.val().trim();
$error.text('');
if (!value) {
$error.text('此项不能为空');
$input.addClass('error');
} else if ($input.data('regex')) {
const regex = new RegExp($input.data('regex'));
if (!regex.test(value)) {
$error.text('格式不正确');
$input.addClass('error');
} else {
$input.removeClass('error');
}
} else {
$input.removeClass('error');
}
});
通过以上步骤,我们实现了一个完整的jQuery表单验证方案,包括非空检查、正则验证和友好的错误提示功能。这套方案可以轻松扩展到各种表单验证场景中。