javascript - 如何使用 Javascript 对 HTML 表单进行错误检查,包括验证字段是否填写正确?
问题描述
我正在尝试在 Javascript/Jquery 将对表单执行客户端验证的网页上创建一个表单。我需要它不仅检查必填字段是否已填写,而且是否填写正确(即电话号码的格式为 000-000-0000,电子邮件末尾有一个 @example.com 并输入了两个名称名称字段)。我一直在尝试在线查找示例代码,但我发现的代码大多破坏了我已经拥有的代码。这是表单的一个字段的代码:
HTML:
<div class="contactForm">
<label for="phone">Phone: </label>
<div id="errorphone" class="error"></div>
<input type="phone" name="phone" id="phone" placeholder="000-000-0000" required>
</div>
Javascript:
$("document").ready(function(){
console.log("Loaded");
$("#submit").click(function(){
checkPhone();
});
$("#phone").change(function(){
console.log("Something in phone changed");
checkPhone();
});
function checkPhone(inputtxt){
var phoneno = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
if($.trim($("#phone").val())==""){
$("#errorphone").html("<p>You missed your phone number</p>");
$("#errorphone").addClass("showerror");
}
else if((inputtxt.value.match(phoneno)==false){
$("errorphone").html("<p>Please enter your number in the format 000-000-0000</p>");
$("#errorphone").addClass("showerror");
}
else{
$("#errorphone").html("");
$("#errorphone").removeClass("showerror");
}
}
Javascript用于检查该字段是否为空,但是当我尝试添加代码以验证格式是否正确时,所有Javascript 都停止工作。这是我原来的 checkPhone 函数,在我尝试添加格式验证之前:
function checkName(){
if($.trim($("#name").val())==""){
$("#errorname").html("<p>You missed your name</p>");
$("#errorname").addClass("showerror");
}
else{
$("#errorname").html("");
$("#errorname").removeClass("showerror");
}
}
我正在使用 Sublime,并且当前 Javascript 中的 else 语句没有正确着色,所以我假设问题可能与语法有关,因为似乎 else 语句不再被识别。但坦率地说,我什至不确定我是否要正确地格式化验证,而且我确信有一种更简单的方法可以完全进行表单验证。我还注意到当前版本的 checkPhone 有 inputtxt 作为条件,但该字段的输入类型被列为电话。也许这就是问题所在?
无论哪种方式,对我正在使用的方法以及如何进行的任何帮助都会很棒。
解决方案
else if((inputtxt.value.match(phoneno)==false){
这一行缺少一个右括号
推荐阅读
- python - 进度条的日期百分比
- python - Python 脚本有命令调用两个脚本。如果一个脚本完成并重新运行命令,如何杀死这两个脚本?
- java - Java - 如何将旧方式代码块空检查切换为可选空检查?
- node.js - 如何在反应中呈现可流式图像响应作为图像?
- java - Microsoft Graph api 无效范围
- docker - 如何公开仅绑定到 127.0.0.1 的服务?
- django - Django:嵌套属性上的 Prefetch_related
- azure - 为什么 iOS 设备可能不会收到来自 Azure 推送通知中心的推送通知?
- python - 如何调用一组函数
- javascript - Firebase 规则保护自动增量计数器?