使用HTML5一次验证所有字段,而不是一次验证

时间:2015-09-29 16:56:52

标签: css html5 validation

有没有办法让HTML5一次验证所有字段而不是一次验证?

使用几行JavaScript是可以的,但我真的不想使用整个模块。

我搜索了很多但是找不到一个干净的解决方案。

以下是一个示例表单:

<html>
   <head>
      <title>Validation Test</title>
      <link href="css/style.css" rel="stylesheet">
   </head>
   <body>
      <form action="" id="myForm" method="post">
         <input id="name" name="name" required type="text">
         <input id="phone" name="phone" required type="text">
         <input type="submit" value="Submit">
      </form>
   </body>
</html>

Css文件:

input:focus:required:invalid {
   border: 2px solid red !important;
}

建议作为可能重复的帖子是为一个字段设置多个验证条件,我希望一次验证/显示所有无效字段。

2 个答案:

答案 0 :(得分:1)

如果你不想使用jQuery,那很好。您可以使用vanilla js事件处理程序和DOM选择器轻松完成此操作。我为了节省时间而使用jQuery。

$('#myForm').on('submit', function() {
  var $inputs = $(this).find(':input'),
      isValid = true;

  $inputs.each(function() {
    if ($(this).val() == '') {
      isValid = false;
      $(this).addClass('error-control');
    } else {
      $(this).removeClass('error-control');
    }
  });

  return isValid  
});

答案 1 :(得分:0)

使用Form标签上的onSubmit:

请参阅:http://www.w3schools.com/js/js_validation.asp

  <form action="" id="myForm" method="post" onsubmit="return validateForm()">

JS:

function validateForm() {
    // validate form here
    // return false if there are errors
    // return true to submit the form
}