如何在 php 中使用 javascript 验证在相应的输入字段下打印错误消息

新手上路,请多包涵

如果留空,如何在相应的输入字段下打印错误消息,填充时必须删除错误消息,如何进一步进行我之前没有使用 javascript 进行验证。

脚本代码

function validateForm() {
    var a = document.forms["student_reg"]["name"].value;
    if (a == null || a == "") {
        alert("Name must be filled out");
        return false;
    }
     var b = document.forms["student_reg"]["email"].value;
     if (b == null || b == "") {
        alert("Email must be filled out");
        return false;
    }
     var c = document.forms["student_reg"]["username"].value;
     if (c == null || c == "") {
        alert("Username must be filled out");
        return false;
    }
     var d = document.forms["student_reg"]["password"].value;
     if (d == null || d == "") {
        alert("Password must be filled out");
        return false;
    }
     var e = document.forms["student_reg"]["roll_no"].value;
     if (e == null || e == "") {
        alert("Roll no must be filled out");
        return false;
    }
}

html代码在这里

<body>

 <a href="login.php">Login</a>
        <form name="student_reg" method="POST" action="" onsubmit="return validateForm()">
                <p>NAME:</p>
                <input type="text" name="name" value="" >
                <span class="error"><p id="name_error"></p></span

                <p>EMAIL:</p>
                <input type="text" name="email" value="" >
                <span class="error"><p id="email_error"></p></span

                <p>USERNAME:</p>
                <input type="text" name="username" value="" >
                <span class="error"><p id="username_error"></p></span

                <p>PASSWORD:</p>
                <input type="password" name="password" value="" >
                <span class="error"><p id="password_error"></p></span

                <p>ROLL NO:</p>
                <input type="number" name="roll_no" value="" >
                <span class="error"><p id="roll_no_error"></p></span
                <br/>
                <br/>
                <br/>

                <input type="submit" name="submit" value="submit">

 </form>
 </body>

原文由 mickey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 264
2 个回答

你可以试试这段代码:

它会检查错误并在显示所有错误消息(如果有)后最后返回。

 function validateForm() {
    var error = 0;
    var a = document.forms["student_reg"]["name"].value;
    document.getElementById('name_error').innerHTML = '';
    if (a == null || a == "") {
        // alert("Name must be filled out");
        error++;
        document.getElementById('name_error').innerHTML = 'Name must be filled out';
    }

    var b = document.forms["student_reg"]["email"].value;
    document.getElementById('email_error').innerHTML = '';
    if (b == null || b == "") {
        // alert("Email must be filled out");
        error++;
        document.getElementById('email_error').innerHTML = 'Email must be filled out';
    }

    var c = document.forms["student_reg"]["username"].value;
    document.getElementById('username_error').innerHTML = '';
    if (c == null || c == "") {
        // alert("Username must be filled out");
        error++;
        document.getElementById('username_error').innerHTML = 'Username must be filled out';
    }

    var d = document.forms["student_reg"]["password"].value;
    document.getElementById('password_error').innerHTML = '';
    if (d == null || d == "") {
        // alert("Password must be filled out");
        error++;
        document.getElementById('password_error').innerHTML = 'Password must be filled out';
    }

    var e = document.forms["student_reg"]["roll_no"].value;
    document.getElementById('roll_no_error').innerHTML = '';
    if (e == null || e == "") {
        // alert("Roll no must be filled out");
        error++;
        document.getElementById('roll_no_error').innerHTML = 'Roll no must be filled out';
    }

    if(error>0) {
        return false;
    }
    return true;
}

原文由 Ravi Sachaniya 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以遍历表单的所有元素 student_reg 以验证电子邮件和必填项,如果未设置值,则在相应的输入字段下打印错误消息:

 const validateForm = () => {
  const form = document.forms['student_reg'],
    inputs = [...form.getElementsByTagName('input')],
    errors = [...form.getElementsByClassName('error')],
    regex = /\S+@\S+\.\S+/,
    setErrorMsg = (str, msg) => `${str.replace('_', ' ')} ${msg}`
  let countErrors = 0

  inputs.forEach((input, index) => {
    // clear all errors
    (errors[index] || '').innerHTML = ''

    // validate email
    if (input.name === 'email' && !regex.test(input.value)) {
      errors[index].innerText = setErrorMsg(input.name, 'should be valid')
      countErrors++
    }

    // validate required
    if (!input.value) {
      errors[index].innerText = setErrorMsg(input.name, 'field is required')
      countErrors++
    }
  })

  return countErrors === 0
}
 p {
  font-size: 13px;
  margin: 4px 0 0;
}

.error {
  font-size: 12px;
  padding: 6px 0 4px;
  color: red;
  display: block
}

.error:first-letter {
  text-transform: uppercase
}

button {
  margin-top: 8px;
  font-size: 16px;
}
 <form name="student_reg" method="POST" action="" onsubmit="return validateForm()">
  <p>NAME:</p>
  <input type="text" name="name" value="">
  <span class="error"></span>

  <p>EMAIL:</p>
  <input type="text" name="email" value="">
  <span class="error"></span>

  <p>USERNAME:</p>
  <input type="text" name="username" value="">
  <span class="error"></span>

  <p>PASSWORD:</p>
  <input type="password" name="password" value="">
  <span class="error"></span>

  <p>ROLL NO:</p>
  <input type="number" name="roll_no" value="">
  <span class="error"></span>

  <button>Submit</button>
</form>

原文由 Yosvel Quintero 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题