如何使用 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 作为条件,但该字段的输入类型被列为电话。也许这就是问题所在?

无论哪种方式,我正在使用的方法以及如何进行的任何帮助都会很棒。

彼得·斯泰恩

正如我在评论中所述,我推荐jquery 验证插件以下是您如何使用插件验证您的电话号码。如果您阅读文档,您会看到有许多示例。这是一个演示:https : //jsfiddle.net/6gojrte2/

HTML 标记:

    <form id="myform">
        <label for="phone">Phone: </label>      
        <input name="field" placeholder="000-000-0000"><br/>
        <input type="submit" value="Validate!">
    </form>

所需的脚本

<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<script>

$(document).ready(function () {

    $( "#myform" ).validate({
      rules: {
        field: {
          required: true,
          phone: true     
        }
      }
    });

    jQuery.validator.addMethod("phone", function (phone_number, element) {
            phone_number = phone_number.replace(/\s+/g, "");
            return this.optional(element) || phone_number.length > 9 &&  phone_number.match(/^\(?[\d\s]{3}-[\d\s]{3}-[\d\s]{4}$/);
    }, "Invalid phone number");

});
</script>

但是,如果您不想使用该插件,这里是您验证的解决方案。我纠正了一些错误。

<script>

 $("document").ready(function(){

      $("#submit").click(function(){
        checkPhone($('#phone').val());
      });
 });

    $("#phone").keyup(function(){      
      checkPhone($('#phone').val());
    });

    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.match(phoneno))==false || inputtxt.length < 12){          
        $("#errorphone").html("<p>Please enter your number in the format 000-000-0000</p>");
        $("#errorphone").addClass("showerror");
      }
      else{       
        $("#errorphone").html("");
        $("#errorphone").removeClass("showerror");
      }
    }

</script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用HTML表单中的javascript检查单选按钮验证

如何使用JavaScript修复错误的HTML表单?

如何使用JavaScript添加JavaScript警报消息以显示html表单验证正确

使用JavaScript验证HTML表单

如何对多个HTML表单使用JavaScript函数

如何使用JavaScript显示html表单

如何使用javaScript生成正确的html标签?

如何使用JavaScript在HTML表单中对结果进行排名?

javascript-如何使用html表单进行面积计算

如何使用 javascript 将包含已填写表单的 html 网页下载为 HTML 文件

HTML / JavaScript:提交表单(使用queryselector)时如何使用警报?

使用JavaScript禁用HTML表单中的字段

如何使用 Javascript 验证表单字段

使用javascript进行HTML5验证

如何使用JavaScript进行表单验证

如何使用JavaScript进行表单验证?

如何使用Javascript输出HTML表单数据?

如何防止我的表单操作(html)使用javascript?

如何使用JavaScript(js)克隆和删除html表单?

如何使用Javascript将点击事件保存到HTML表单

如何使用Javascript编辑HTML表单文本框?

如何使用HTML和JavaScript从表单框中显示URL?

如何获取 HTML 表单值以在 javascript 函数中使用?

使用JavaScript提交HTML表单

如何使用JavaScript拦截HTML5输入验证?

如何使用JavaScript验证HTML中的“选择”标签

如何使用 javascript 在 HTML 中更改 Flask WTForm 字段值?

如何使用javascript渲染html

如何使用 JavaScript if 语句、HTML