javascript - 使用 jQuery 通过 try 和 catch 验证用户输入

标签 javascript jquery

我想使用 try 和 catch 验证输入的值。每次用户给出错误的值时,我希望在填写错误的输入框旁边显示一条消息。

问题是每次执行时,两个输入框中都会出现错误消息,并且我不想输入太多条件。我只是想让它尽可能简单。我不知道应该使用什么条件。

$(document).ready(function() {
  $("#btn").click(function() {
    var inputArr = [$("#name").val(), $("#lName").val()];
    var regexArr = [new RegExp("\^[a-zA-z]+$"), new RegExp("\^[a-zA-z]+$")];
    for (var i = 0; i < inputArr.length; i++) {
      fn(regexArr[i], inputArr[i]);
    } //for loop

    function fn(exp, str) {
      var res = exp.test(str);
      try {
        if (res == false) {
          throw Error("wrong");
        }
      } catch (e) {
        alert(e);
        $("#empty1").fadeIn(3000);
        $("#empty1").html(e);
        $("#empty1").fadeOut(3000);
        $("#empty2").fadeIn(3000);
        $("#empty2").html(e);
        $("#empty2").fadeOut(3000);
      } //try and catch
    } //function
    
  }); //button
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<html>

<body>
  Name<input id="name"><span id="empty1"></span></br>
  </br>
  Last Name<input id="lName"><span id="empty2"></span></br>
  </br>
  <button id='btn'>Click</button>
</body>

</html>

最佳答案

对于表单验证,最好使用 Jquery 验证插件。它非常简单,需要包含 Jquery 库。试试这个 https://jqueryvalidation.org/ 。另请引用这个js fiddle https://jsfiddle.net/jfc62uof/6/

<form action="javascript:void(0)" id="myform" role="form" enctype="multipart/form-data" method="POST">
   <div class="form-group">
      <label><b>Password</b></label>
      <input type="password" class="form-control" placeholder="Password" name="psw" id="psw">
   </div>
   <div class="form-group">
      <label><b>Repeat Password</b></label>
      <input type="password" class="form-control" placeholder="Repeat Password" name="rpsw">
      <span id='message'></span>
   </div>
   <div class="form-group">
      <input type="submit" class="btn btn-primary" name="submit" value="save">
   </div>
</form>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/additional-methods.min.js"></script>
<script>
   $("#myform").validate({
     rules: {
       psw: {
         required: true
       },
       rpsw: {
         equalTo: "#psw"
       }
     }
   });
</script>

关于javascript - 使用 jQuery 通过 try 和 catch 验证用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47879728/

相关文章:

javascript - 如何使用 JQuery 将事件应用到动态加载的 DOM 节点?

javascript - 根据子元素的值更改父元素的 CSS

javascript - IE8 内联 LAB.JS 脚本出现令人难以置信的问题

javascript - 网络音乐播放器-如何制作滚动条

javascript - 使用同一对象中的其他变量来声明变量

javascript - html2canvas 捕获低质量图片

jQuery UI - 删除焦点上的橙色选项卡边框

部分 View 刷新后未调用 JavaScript 函数

javascript - 努力弄清楚为什么附加原始 HTML 会产生与使用 jQuery 创建 HTML 不同的结果

php - 缓存 AJAX 请求