jquery 验证
jQuery 表单验证方法
jQuery 表单验证可以通过多种方式实现,常见的有原生 jQuery 代码验证和使用 jQuery 验证插件(如 jQuery Validation Plugin)。
原生 jQuery 验证示例
通过编写自定义的 jQuery 代码来验证表单字段:
$("#myForm").submit(function(event) {
var isValid = true;
var email = $("#email").val();
if (email === "") {
$("#emailError").text("Email is required");
isValid = false;
} else if (!isValidEmail(email)) {
$("#emailError").text("Invalid email format");
isValid = false;
} else {
$("#emailError").text("");
}
if (!isValid) {
event.preventDefault();
}
});
function isValidEmail(email) {
var regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(email);
}
使用 jQuery Validation 插件
jQuery Validation 是一个流行的表单验证插件,可以简化验证逻辑:
-
引入 jQuery 和 jQuery Validation 插件:

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.3/dist/jquery.validate.min.js"></script> -
定义验证规则:
$("#myForm").validate({ rules: { email: { required: true, email: true }, password: { required: true, minlength: 6 } }, messages: { email: { required: "Please enter your email", email: "Please enter a valid email address" }, password: { required: "Please provide a password", minlength: "Your password must be at least 6 characters long" } } }); -
HTML 表单结构:

<form id="myForm"> <input type="text" name="email" id="email"> <input type="password" name="password" id="password"> <button type="submit">Submit</button> </form>
自定义验证方法
可以通过 $.validator.addMethod 添加自定义验证规则:
$.validator.addMethod("strongPassword", function(value, element) {
return /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/.test(value);
}, "Password must contain at least one uppercase letter, one lowercase letter, and one number");
$("#myForm").validate({
rules: {
password: {
required: true,
strongPassword: true
}
}
});
实时验证
通过 keyup 和 blur 事件实现实时验证:
$("#email").on("keyup blur", function() {
$("#myForm").validate().element("#email");
});
异步验证
使用 remote 规则进行服务器端验证:
$("#myForm").validate({
rules: {
username: {
required: true,
remote: {
url: "check-username.php",
type: "post"
}
}
},
messages: {
username: {
remote: "Username already taken"
}
}
});






