javascript - 如何使用 Javascript 验证和 PHP 处理事件监听器
问题描述
对不起,伙计们。我是一名学生的 Web 编程新手,我喜欢专注于 Web 开发,但我发现自己遇到了问题。我尝试使用 JavaScript 验证将表单提交到 PHP 文件,但我尝试使用事件侦听器帮助我检查输入字段。我想先检查名字输入是否已填写。事件侦听器有助于避免在未填写名字时提交表单,但是当我填写它时,不会通过单击提交按钮提交表单,而是需要单击两次才能提交表单。问题出在哪里?
代码
`form method="POST" action="form.php" id="form" > 名字输入类型='text' name='firstName' id="firstName"> 输入类型='提交'值=“提交表单”>`
JAVASCRIPT代码
var form = document.getElementById("form");
form.addEventListener("submit", eventListerners);
function eventListerners(event){
event.preventDefault();
var firstName = document.getElementById("firstName");
if(firstName.value == ""){
alert("Name cannot be empty");
}
else {
form.removeEventListener("submit", eventListerners);
}
}
解决方案
您可以在块中调用submit
事件:else
var form = document.getElementById("form");
form.addEventListener("submit", eventListerners);
function eventListerners(event){
event.preventDefault();
var firstName = document.getElementById("firstName");
if(firstName.value == ""){
alert("Name cannot be empty");
}else{
this.submit();
}
}
<form method="POST" action="form.php" id="form" >
First Name <input type= 'text' name= 'firstName' id="firstName">
<input type= 'submit' value="Submit Form">
删除事件侦听器不是提交表单的好习惯。如果用户输入有效数据,则提交表单。或者当用户输入无效数据时阻止表单提交。
推荐阅读
- java - JavaFX ComboBox 仅显示箭头
- c# - 什么时候使用 [? 和 :] 而不是 if 语句?
- fortran - Fortran 数组边界检查的运行时检查未触发
- react-native - React native + Jest:意外的令牌'{'
- java - 与日志库冲突 - 类路径包含多个 SLF4J 绑定
- javascript - 带有函数的“React Hook useEffect 缺少依赖项”警告
- ios - 如何在 TabBar 中删除和重置顶行 - 适用于 iOS 13+
- ios - FB 登录不适用于 React Native iOS v13+
- java - 使用 atom 导入包
- python - 如何使用 selenium 从内联 css 获取背景图像