使用preventDefault检查必填字段

问题描述 投票:0回答:3

我遇到了一种情况,我有一个HTML表单,它在许多领域都需要。问题是我必须使用preventDefault忽略'required'输入并提交表单,即使没有必填字段。因为工作不完全取决于我,我必须使用preventDefault并解决它。

我正在使用jQuery,我正在尝试找到一种方法来定位所需的字段并阻止表单在click上提交。在用户可以将表单提交为表单之前填写表单上的必填字段非常重要。我不希望在提交时遗漏所需的信息。感谢帮助!

HTML

<form id="myForm">

    <input type="text" name="sentence1" id="st1" placeholder="Text here" required>

    <input type="text" name="sentence1" id="st2" placeholder="Text here" required>

    <input type="text" name="sentence1" id="st3" placeholder="Text here" required>

    <input type="text" name="sentence1" id="st4" placeholder="Text here" required>

    <input type="text" name="sentence1" id="st5" placeholder="This field is not required">

    <button type="submit" id="submit-form">Submit</button>

</form>
javascript jquery html html-form preventdefault
3个回答
1
投票

在您使用preventDefault()的事件处理程序中,在表单元素上添加checkValidity()方法:

document.getElementById('myForm').checkValidity();

这将“静态”检查您的表单是否存在所有HTML5约束违规(包括必需),


0
投票

只是解决您的问题的快速解决方案。我希望这就是你所需要的。检查如下:

$('#submit-form').click(function(){
     event.preventDefault();
     if(validateForm()){
      alert('sending');
     }

    });


    function validateForm() {
      var isValid = true;
      $('input[type=text]').each(function() {
        if ( $(this).val() === '' ) {
        alert('validation failed');
        isValid = false;
        } 
      });
      return isValid;
    }

或者访问JSFiddle:enter link description here


-1
投票

您可以在表单提交方法中使用preventDefault()。然后'required'将起作用。

document.querySelector('form').addEventListener('submit', submitHandler);

function submitHandler(e){
e.preventDefault();
//your code here
}
© www.soinside.com 2019 - 2024. All rights reserved.