【问题标题】:Validate input field while writing写入时验证输入字段
【发布时间】:2020-04-20 20:36:42
【问题描述】:

当有人在字段中输入时,我可以隐藏我的验证错误吗? (不集中,仅在输入更多字母时)。

我目前有这个代码:

 <div>
  Email:
  <input type="text" name="email" id="txtEmail" onblur="validateForm()">
  <label id="lblError" style="color:red"></label>
  </div>

还有这个javascript:

function validateForm() {
     var x = document.getElementById("txtEmail").value;
     var atpos = x.indexOf("@");
     var dotpos = x.lastIndexOf(".");
     if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {


         document.getElementById("lblError").innerHTML = "Enter valid email Address";
     }
     else {
         document.getElementById("lblError").innerHTML = "";
     }
 }

这样做是在输入字段失去焦点时验证我的电子邮件输入。 但是,当有人再次集中注意力并写更多信时,我希望它能够隐藏错误。 和这个网站一模一样:https://www.cosstores.com/en_dkk/login

这可以用 jquery 或 javacript 吗?

【问题讨论】:

    标签: javascript html jquery


    【解决方案1】:

    我相信您正在寻找焦点事件。

    <div>
      <label for="txtEmail">Email:</label>
      <input type="text" name="email" id="txtEmail" onblur="validateForm()" onkeypress="clearErrMsg()">
      <label id="lblError" style="color:red"></label>
    </div>
    
      function validateForm() {
        var x = document.getElementById("txtEmail").value;
        var atpos = x.indexOf("@");
        var dotpos = x.lastIndexOf(".");
        if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
          document.getElementById("lblError").innerHTML = "Enter valid email Address";
        } else {
          document.getElementById("lblError").innerHTML = "";
        }
      }
    
      function clearErrMsg() {
        document.getElementById("lblError").innerHTML = "";
      }
    
    

    【讨论】:

    • 这会在聚焦时删除错误消息,这很好,但是我希望当有人在输入中键入更多字母时将其删除。
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 2017-11-21
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多