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