首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证并返回red

验证并返回red
EN

Stack Overflow用户
提问于 2021-03-08 19:54:37
回答 2查看 40关注 0票数 0

我尝试检查所有为空的输入框,以便在该空框上显示红色圆角

但是我不知道为什么它不适合我,我的javascript有一个问题。

我需要在我的javascript帮助,以验证所有输入框,然后再提交

代码语言:javascript
复制
function validateForm() {
  // This function deals with validation of the form fields
  var y, i, valid = true;
  y = document.getElementsByTagName("input");
  // A loop that checks every input field 
  for (i = 0; i < y.length; i++) {
    // If a field is empty...
    if (y[i].value == "") {
      // add an "invalid" class to the field:
      y[i].className += " invalid";
      // and set the current valid status to false
      valid = false;
    }
  }
  return valid; // return the valid status
}
代码语言:javascript
复制
/* Mark input boxes that gets an error on validation: */

input.invalid {
  background-color: #ffdddd;
}
代码语言:javascript
复制
<form id="regForm" action="/action_page.php" onsubmit="return validateForm()">
  <h1>Register:</h1>
  <div>Name:
    <p><input placeholder="First name..." oninput="this.className = ''" name="fname"></p>
    <p><input placeholder="Last name..." oninput="this.className = ''" name="lname"></p>
  </div>

  <input type="button" value="submit" onclick="sndm">

</form>

EN

回答 2

Stack Overflow用户

发布于 2021-03-08 20:08:24

不需要使用字符串比较来查找空字段。HTML为此提供了required-attribute,并将其反映在element.validity对象中。

代码语言:javascript
复制
const textInputs = document
  .getElementById('regForm')
  .querySelectorAll('input[type="text"]');

function validateForm() {
  return textInputs.every(input => input.validity.valid)
}
代码语言:javascript
复制
/* Mark input boxes that gets an error on validation: */

input:invalid {
  background-color: #ffdddd;
}
代码语言:javascript
复制
<form id="regForm" action="/action_page.php" onsubmit="return validateForm()">
  <h1>Register:</h1>
  <div>Name:
    <p><input placeholder="First name..." name="fname" required type="text"></p>
    <p><input placeholder="Last name..." name="lname" required type="text"></p>
  </div>

  <input type="submit" value="submit">
</form>

为了防止表单提交时出现空域,你甚至不需要Javascript:

代码语言:javascript
复制
/* Mark input boxes that gets an error on validation: */

input:invalid {
  background-color: #ffdddd;
}
代码语言:javascript
复制
<form id="regForm" action="/action_page.php">
  <h1>Register:</h1>
  <div>Name:
    <p><input placeholder="First name..." name="fname" required type="text"></p>
    <p><input placeholder="Last name..." name="lname" required type="text"></p>
  </div>

  <input type="submit" value="submit">
</form>

票数 0
EN

Stack Overflow用户

发布于 2021-03-08 20:20:10

您可以使用HTML的默认属性"required“来验证表单,并提供默认的工具提示,使其使用起来更加友好,这也可以防止提交无效的表单。

如下例所示:

CSS

代码语言:javascript
复制
input:invalid {
  background-color: #ffdddd;
}

HTML

代码语言:javascript
复制
  <form id="regForm" action="/action_page.php" onsubmit="return validateForm()">
      <h1>Register:</h1>
      <div>Name:
        <p><input type="text" placeholder="First name..." required name="fname"></p>
        <p><input type="text" placeholder="Last name..." required name="lname"></p>
      </div>
      <input type="submit" value="submit">
    
    </form> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66529399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档