如何防止表单验证错误消息但仍然验证?
How to prevent form validation error message but still validate?
我在互联网上到处寻找解决这个问题的方法,但找不到任何答案。如果我不清楚,这是我要删除的内容:
示例代码:
<form action="search.html" id="form">
<input type="text" placeholder="Search..." name="s" id="s" required>
<button type="submit">Submit</button>
</form>
此外,对于 <input type="">
,我正在做的事情是 type="search"
而不是 type="text"
更好吗?
如果需要使用 HTML 以外的任何东西,请尽可能不要使用 jquery。
您可以使用 setCustomValidity
:
<form action="search.html" id="form">
<input type="text" placeholder="Search..." name="s" id="s" oninvalid="this.setCustomValidity(' ')" required>
<button type="submit">Submit</button>
</form>
我不确定您为什么必须指定 space (" "
) 作为有效性消息,但如果您应用空字符串,它显然会被忽略。
如果你想让它表现得像Google,那么你可以监听表单上的submit
事件,然后使用.preventDefault()
阻止表单提交,如果输入值为空。另一个例子见 。
form = document.querySelector('form');
input = document.querySelector('input');
form.addEventListener('submit', function(event) {
if (input.value == '') {
event.preventDefault(); // prevent the form from submitting
}
});
<form>
<input type="search" />
<button>
Submit?
</button>
</form>
另一个用户体验稍微好一点的选项是默认禁用该按钮,然后在文本输入字段有一些值时启用它。当用户在输入字段中输入内容时,这至少会为用户提供一些反馈(按钮会启用)。
input = document.querySelector('input');
button = document.querySelector('button');
input.addEventListener('input', function(event) {
if (input.value == '') {
button.disabled = true;
} else {
button.disabled = false;
}
});
<form>
<input type="search" />
<button disabled>
Submit?
</button>
</form>
我在互联网上到处寻找解决这个问题的方法,但找不到任何答案。如果我不清楚,这是我要删除的内容:
示例代码:
<form action="search.html" id="form">
<input type="text" placeholder="Search..." name="s" id="s" required>
<button type="submit">Submit</button>
</form>
此外,对于 <input type="">
,我正在做的事情是 type="search"
而不是 type="text"
更好吗?
如果需要使用 HTML 以外的任何东西,请尽可能不要使用 jquery。
您可以使用 setCustomValidity
:
<form action="search.html" id="form">
<input type="text" placeholder="Search..." name="s" id="s" oninvalid="this.setCustomValidity(' ')" required>
<button type="submit">Submit</button>
</form>
我不确定您为什么必须指定 space (" "
) 作为有效性消息,但如果您应用空字符串,它显然会被忽略。
如果你想让它表现得像Google,那么你可以监听表单上的submit
事件,然后使用.preventDefault()
阻止表单提交,如果输入值为空。另一个例子见 。
form = document.querySelector('form');
input = document.querySelector('input');
form.addEventListener('submit', function(event) {
if (input.value == '') {
event.preventDefault(); // prevent the form from submitting
}
});
<form>
<input type="search" />
<button>
Submit?
</button>
</form>
另一个用户体验稍微好一点的选项是默认禁用该按钮,然后在文本输入字段有一些值时启用它。当用户在输入字段中输入内容时,这至少会为用户提供一些反馈(按钮会启用)。
input = document.querySelector('input');
button = document.querySelector('button');
input.addEventListener('input', function(event) {
if (input.value == '') {
button.disabled = true;
} else {
button.disabled = false;
}
});
<form>
<input type="search" />
<button disabled>
Submit?
</button>
</form>