Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示错误后验证表单_Javascript_Html - Fatal编程技术网

Javascript 显示错误后验证表单

Javascript 显示错误后验证表单,javascript,html,Javascript,Html,我有一个输入用户名和密码的表单。如果保留为空,则会显示一个错误,但当填写其中一个输入框并单击“提交”按钮时,该错误不会消失 <script type="text/javascript"> function chck() { var valid = true; var pass = document.getElementById('password_box').value; var user = document.getElemen

我有一个输入用户名和密码的表单。如果保留为空,则会显示一个错误,但当填写其中一个输入框并单击“提交”按钮时,该错误不会消失

      <script type="text/javascript">

      function chck() {
      var valid = true;
    var pass = document.getElementById('password_box').value;
    var user = document.getElementById('username_box').value;
            if (user == '') {
        document.getElementById('password-error').innerHTML = "* Please enter username to proceed...";
        document.getElementById('username_box').style.borderColor = "#DC3D24";
            document.getElementById('username_box').style.backgroundColor = "maroon";
        valid = false;
    }
    if (pass == '') {
        document.getElementById('user-error').innerHTML = "* Please enter password to proceed...";
        document.getElementById('password_box').style.borderColor = "#DC3D24";
            document.getElementById('password_box').style.backgroundColor = "maroon";
       valid = false;
    }else{
                   valid = true;
        }
                return valid;
    }

      </script>
</head>
<body>
      <form action="checkup.php" method="post" name="checkup">
      <div class="login-box">
           <input type="text" placeholder="Username goes here.." id="username_box" class="box" name="username">
           <input type="password" placeholder="Password goes here.." id="password_box" class="box" name="password">          <BR>
           <input type="submit" class="button" id="submit_button" value="LogMeIn" onClick="return chck()">
           <input type="button" class="button" id="clear_button" value="Clear">
      </div>
      </form>        <BR>
      <center>
      <div class="error-area" id="message">
        <p id="password-error">
      </p>
      <p id="user-error">
      </p>

      </div>
      </center>

函数chck(){
var valid=true;
var pass=document.getElementById('password_box')。值;
var user=document.getElementById('username_-box')。值;
如果(用户=“”){
document.getElementById('password-error')。innerHTML=“*请输入用户名继续…”;
document.getElementById('username_-box').style.borderColor=“#DC3D24”;
document.getElementById('username_-box').style.backgroundColor=“栗色”;
有效=错误;
}
如果(通过=“”){
document.getElementById('user-error').innerHTML=“*请输入密码继续…”;
document.getElementById('password_box').style.borderColor=“#DC3D24”;
document.getElementById('password_box').style.backgroundColor=“栗色”;
有效=错误;
}否则{
有效=真;
}
返回有效;
}



只有我同时填写这两个框,错误才会消失。我想在其中一个框中填入文本后立即隐藏错误。谢谢你能给我的任何帮助。

尝试使用HTML5……只需添加required属性,并使用重置输入来清除值

<form action="checkup.php" method="post" name="checkup">
  <div class="login-box">
       <input type="text" placeholder="Username goes here.." id="username_box" class="box" name="username" required title="* Please enter username to proceed...">
       <input type="password" placeholder="Password goes here.." id="password_box" class="box" name="password" required title="* Please enter password to proceed...">          <BR>
       <input type="submit" class="button" id="submit_button" value="LogMeIn" onClick="return chck()">
       <input type="reset"  value="Clear">
  </div>
  </form>  


或者,如果要使用现有代码实现此目的,请尝试使用onfocus event清除错误消息。希望此hepls您可以为您的“用户名框”和“密码框”元素在
的“按键”上运行
chck()

像这样:

document. getElementById("username_box").addEventListener("keypress", function () {
  chck();
}, true);
但稍微将
chck
更新为:

function chck() {
  var valid = true;
  var pass = document.getElementById('password_box').value;
  document.getElementById('password-error').innerHTML = "";
  var user = document.getElementById('username_box').value;
  document.getElementById('user-error').innerHTML = "";
  document.getElementById('password_box').setAttribute("style", "");
  document.getElementById('username_box').setAttribute("style", "");
  if (user == '') {
    document.getElementById('password-error').innerHTML = "* Please enter username to proceed...";
    document.getElementById('username_box').style.borderColor = "#DC3D24";
    document.getElementById('username_box').style.backgroundColor = "maroon";
    valid = false;
  }
  if (pass == '') {
    document.getElementById('user-error').innerHTML = "* Please enter password to proceed...";
    document.getElementById('password_box').style.borderColor = "#DC3D24";
    document.getElementById('password_box').style.backgroundColor = "maroon";
    valid = false;
  }
  else{
    valid = true;
  }
  return valid;
}