请问如何调用 form input 的检查机制,而不要 submit 跳转页面?
目前调用 js 的 submit 方法,浏览器会检查 input 的条件像是 require, min, max 等
但是假如检查都通过会 submit 跳转页面
想要不跳转 URL 页面,也能检查,自动会 scroll 到有问题 input,并跳出浏览器自带的提示词
请问如何调用 form input 的检查机制,而不要 submit 跳转页面?
目前调用 js 的 submit 方法,浏览器会检查 input 的条件像是 require, min, max 等
但是假如检查都通过会 submit 跳转页面
想要不跳转 URL 页面,也能检查,自动会 scroll 到有问题 input,并跳出浏览器自带的提示词
如果你只想要表单启动校验机制,但不希望提交表单,可以侦听表单的 submit
事件,然后 event.preventDefault()
。这样浏览器会检查表单元素,并给出对应的提示。
如下:
form.addEventListener('submit', event => {
event.preventDefault();
// 做你其它想做的事情
});
13 回答12.8k 阅读
7 回答1.9k 阅读
4 回答2.1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答875 阅读✓ 已解决
6 回答1k 阅读
满足验证后自动跳转页面(提交表单)这本来就是符合预期的行为呀,按你的需求,表单就提交不出去了。
当然有办法,在 form 的 submit 事件里面阻止默认行为(成功时提交表单)就好了,未通过验证的是不会进入到 submit 事件的。
如果你想要手动验证表单/输入框(任何时候),可以使用表单/输入框的方法(
checkValidity
/reportValidity
)