Bootstrap - 验证:初学者的全面指南
你好,有抱负的网页开发者们!今天,我们将深入Bootstrap验证的世界。作为你友好的计算机老师邻居,我很高兴引导你们开始这段旅程。如果你是编程新手,不用担心——我们将从基础开始,逐步深入。在本教程结束时,你将能够像专业人士一样验证表单!
什么是Bootstrap验证?
在我们深入了解细节之前,让我们先了解一下Bootstrap验证是什么。想象一下,你正在在线填写一个表单,不小心留下了一个必填字段空白。突然,表单用红色突出显示该字段,告诉你需要填写它。这就是表单验证的作用!我们的可靠前端工具包Bootstrap为我们提供了内置的验证功能,使这个过程顺利且用户友好。
自定义样式
让我们从表单验证的自定义样式开始。Bootstrap允许我们为验证过程添加自己的风格。以下是一个简单的例子:
<form class="needs-validation" novalidate>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" class="form-control" id="username" required>
<div class="invalid-feedback">
请选择一个用户名。
</div>
</div>
<button class="btn btn-primary" type="submit">提交表单</button>
</form>
在这个例子中,我们为我们的表单添加了needs-validation
类,并设置了novalidate
以防止默认的浏览器验证。输入字段上的required
属性告诉Bootstrap这个字段必须填写。
现在,让我们添加一些JavaScript来使其工作:
(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);
})();
这段JavaScript代码为我们的表单添加了事件监听器,当表单被提交时检查有效性。如果表单无效,它将阻止提交并添加was-validated
类,这会触发我们的自定义样式。
浏览器默认样式
有时,你可能想要使用浏览器的默认验证样式。这就像让浏览器为你做重活!以下是如何操作的:
<form>
<div class="form-group">
<label for="email">电子邮件地址</label>
<input type="email" class="form-control" id="email" required>
</div>
<button class="btn btn-primary" type="submit">提交</button>
</form>
在这种情况下,我们移除了needs-validation
类和novalidate
属性。浏览器现在将使用其默认样式处理验证。
服务器端验证
虽然客户端验证对用户体验很好,但我们应该始终实现服务器端验证以确保安全。以下是一个简单的PHP例子:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "无效的电子邮件格式";
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
这段PHP代码检查提交的电子邮件是否有效。请记住:永远不要信任用户的输入!
支持的元素
Bootstrap验证支持多种表单元素。让我们看看几个:
<form class="needs-validation" novalidate>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" class="form-control" id="username" required>
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" class="form-control" id="password" required>
</div>
<div class="form-group">
<label for="country">国家</label>
<select class="form-control" id="country" required>
<option value="">选择...</option>
<option>美国</option>
<option>英国</option>
<option>加拿大</option>
</select>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="terms" required>
<label class="form-check-label" for="terms">
同意条款和条件
</label>
</div>
</div>
<button class="btn btn-primary" type="submit">提交表单</button>
</form>
这个表单包括文本输入、密码输入、下拉选择和复选框 - 所有这些都由Bootstrap验证支持。
工具提示
想要为你的验证消息添加一些额外的魅力吗?试试工具提示!以下是如何操作的:
<form class="needs-validation" novalidate>
<div class="form-group">
<label for="username">用户名</label>
<input type="text" class="form-control" id="username" required>
<div class="invalid-tooltip">
请选择一个唯一的用户名。
</div>
</div>
<button class="btn btn-primary" type="submit">提交表单</button>
</form>
我们将invalid-feedback
替换为invalid-tooltip
。现在,你将看到的是一个时尚的工具提示,而不是输入下方的文本!
验证方法
以下是一些常见的验证方法,你可以使用:
方法 | 描述 |
---|---|
required |
字段不能为空 |
minlength |
字符的最小长度 |
maxlength |
字符的最大长度 |
min |
数值输入的最小值 |
max |
数值输入的最大值 |
type="email" |
必须是有效的电子邮件地址 |
pattern |
必须匹配特定的模式 |
记住,你可以组合这些方法以实现更复杂的验证规则!
就这样,伙计们!我们已经涵盖了Bootstrap验证的基础,从自定义样式到工具提示。记住,熟能生巧,所以不要害怕尝试这些概念。快乐编码,愿你的表单永远被验证!
Credits: Image by storyset