Bootstrap 5 提供了一套内置的表单验证功能,它使用 HTML5 的表单验证属性,并通过 JavaScript 来增强用户体验。如果你在提交表单时发现验证已经触发,但是没有显示无效字段的提示,可能是以下几个原因:
required
、pattern
等,这些可以在不编写 JavaScript 代码的情况下进行基本的客户端验证。.is-valid
和 .is-invalid
,用于在验证成功或失败时改变表单控件的样式。required
。required
。.is-invalid
类的样式。.is-invalid
类的样式。data-bs-error
属性。data-bs-error
属性。以下是一个完整的示例,展示了如何使用 Bootstrap 5 进行表单验证:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap Form Validation</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/5.1.3/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<form class="needs-validation" novalidate>
<div class="mb-3">
<label for="username" class="form-label">Username</label>
<input type="text" class="form-control" id="username" required>
<div class="invalid-feedback">
Please provide a valid username.
</div>
</div>
<button type="submit" class="btn btn-primary">Submit form</button>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/5.1.3/js/bootstrap.bundle.min.js"></script>
<script>
(function () {
'use strict';
window.addEventListener('load', function () {
var forms = document.getElementsByClassName('needs-validation');
var validation = Array.prototype.filter.call(forms, function (form) {
form.addEventListener('submit', function (event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
}, false);
})();
</script>
</body>
</html>
确保你的代码遵循以上步骤,通常可以解决验证触发但未显示提示的问题。如果问题仍然存在,可能需要检查浏览器的控制台是否有相关的错误信息,或者进一步调试 JavaScript 代码。
领取专属 10元无门槛券
手把手带您无忧上云