
本文旨在提供一个详细的教程,指导开发者如何利用javascript对html `` 元素与 `
HTML5 引入的
原始尝试中常见的错误是尝试直接在 DOM 元素上使用数组方法(如 include),或者错误地获取 DOM 元素集合。例如,document.getElementsById 是一个不存在的方法,正确的应该是 document.getElementById,但即使获取到
要实现对 绑定
立即学习“前端免费学习笔记(深入)”;
首先,确保你的表单、输入框和数据列表有清晰且唯一的 id,以便在 JavaScript 中准确地引用它们。输入框通过 list 属性关联到
<form id="productForm" action="/submit-product" method="post">
<h1>创建技术表单</h1>
<br><br>
<div class="divlot">
<label for="lotInput">输入批次号:</label>
<input type="text" id="lotInput" name="lot" required minlength="7" oninput="this.value = this.value.toUpperCase()">
</div>
<br><br>
<div class="divproduct">
<label for="productInput">输入或选择产品:</label>
<input type="text" name="product" id="productInput" list="productsList" placeholder="选择或输入产品">
<datalist id="productsList">
<option value="productA">产品 A</option>
<option value="productB">产品 B</option>
<option value="productC">产品 C</option>
<option value="productD">产品 D</option>
</datalist>
</div>
<br><br>
<input class="buttonsave" type="submit" value="创建" name="submit">
</form>关键点:
验证逻辑主要包括获取用户输入、获取所有
document.addEventListener("DOMContentLoaded", function() {
const form = document.getElementById("productForm");
const productInput = document.getElementById("productInput");
const datalistOptions = document.querySelectorAll("#productsList option"); // 获取所有option元素
form.addEventListener("submit", function(event) {
const inputValue = productInput.value; // 获取用户输入的值
let isValueValid = false; // 标记输入值是否有效
// 遍历datalist的所有选项,检查是否存在匹配项
for (let i = 0; i < datalistOptions.length; i++) {
if (datalistOptions[i].value === inputValue) {
isValueValid = true;
break; // 找到匹配项后立即退出循环
}
}
// 如果输入值不在datalist中,阻止表单提交并提示用户
if (!isValueValid) {
alert("请输入或选择一个有效的产品!");
event.preventDefault(); // 阻止表单的默认提交行为
}
});
});代码解析:
将 HTML 和 JavaScript 结合,形成一个完整的可运行示例:
Datalist 输入值验证教程
<form id="productForm" action="/submit-product" method="post">
<h1>创建技术表单</h1>
<br><br>
<div class="divlot">
<label for="lotInput">输入批次号:</label>
<input type="text" id="lotInput" name="lot" required minlength="7" oninput="this.value = this.value.toUpperCase()">
</div>
<br><br>
<div class="divproduct">
<label for="productInput">输入或选择产品:</label>
<input type="text" name="product" id="productInput" list="productsList" placeholder="选择或输入产品">
<datalist id="productsList">
<option value="productA">产品 A</option>
<option value="productB">产品 B</option>
<option value="productC">产品 C</option>
<option value="productD">产品 D</option>
</datalist>
</div>
<br><br>
<input class="buttonsave" type="submit" value="创建" name="submit">
</form>
<script>
document.addEventListener("DOMContentLoaded", function() {
const form = document.getElementById("productForm");
const productInput = document.getElementById("productInput");
const datalistOptions = document.querySelectorAll("#productsList option"); // 获取所有option元素
form.addEventListener("submit", function(event) {
const inputValue = productInput.value; // 获取用户输入的值
let isValueValid = false; // 标记输入值是否有效
// 遍历datalist的所有选项,检查是否存在匹配项
// 可以使用 Array.prototype.some 或 Array.prototype.find 简化此循环
// 例如:isValueValid = [...datalistOptions].some(option => option.value === inputValue);
for (let i = 0; i < datalistOptions.length; i++) {
if (datalistOptions[i].value === inputValue) {
isValueValid = true;
break; // 找到匹配项后立即退出循环
}
}
// 如果输入值不在datalist中,阻止表单提交并提示用户
if (!isValueValid) {
alert("请输入或选择一个有效的产品!");
event.preventDefault(); // 阻止表单的默认提交行为
}
});
});
</script>
通过上述教程,我们详细学习了如何利用 JavaScript 对 HTML 元素与
以上就是HTML Datalist输入值验证:确保用户输入在预设列表中的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号