代码之家  ›  专栏  ›  技术社区  ›  espresso_coffee

如何使用onClick JQuery函数运行HTML5验证?

  •  2
  • espresso_coffee  · 技术社区  · 7 年前

    我正试图在我的项目中实现HTML5验证。看起来很有用,也很容易使用。但是,仅当输入类型设置为时,此验证才有效 submit .这部分给我带来了问题。我有多个表单,我使用相同的 name

    <form name="myForm" id="myForm" method="POST" action="#">
        <fieldset>
            <legend>User Info</legend>
            <div class="formItem">
                <label for="last_name">Last Name:</label>
                <input type="text" name="frmst_lname" id="frmst_lname" value="" size="20" maxlength="30" title="Maximum length 30 characters." required/>
            </div>
            <div class="formItem">
                <label for="first_name">First Name:</label>
                <input type="text" name="frmst_fname" id="frmst_fname" value="" size="20" maxlength="30" title="Maximum length 30 characters." required/>
            </div>
            //Same button I have on the other forms. Only ID is different.
            <div class="formItem">
                <p align="center"><input type="button" name="frmSubmit" id="frmstSubmit" value="Submit"></p>
            </div>
        </fieldset>
    </form>
    

    $('input[name="frmSubmit"]').on('click', function(){
        var frmID = $(this).closest('form').prop('id'); //take form ID
        var processVal = $(this).attr('data-process'); //which process will be executed Add or Edit
        //Here I would like to check form validation then process AJAX call
    });
    

    到目前为止,我无法使用HTML 5验证 onClick checkValidty() 但我的表单上的必填字段从来没有显示过这个消息。我想知道HTML5是否适合我的项目,以及如何使用onClick函数进行验证?如果有人能解决这个问题,请告诉我。提前感谢!

    1 回复  |  直到 7 年前
        1
  •  5
  •   Donald Powell    7 年前

    如果您希望HTML5验证工作,请更改要提交的按钮类型。

    <input type="submit" name="frmSubmit" id="frmstSubmit" value="Submit">
    

    <form method="POST" action="form-handler" onsubmit="return checkForm(this);">
    <p>Input: <input type="text" size="32" name="inputfield">
    <input type="submit"></p>
    </form>
    
    <script type="text/javascript">
    
      function checkForm(form)
      {
        if(!condition1) {
           alert("Error: error message");
           form.fieldname.focus();
           return false;
        }
        if(!condition2) {
           alert("Error: error message");
           form.fieldname.focus();
           return false;
        }
        ...
        return true;
      }
    
    </script>
    

    请参阅: http://www.the-art-of-web.com/javascript/validate/

    如果您想在HTML5验证中使用AJAX调用,请尝试使用 e、 preventDefault() 在on submit函数中。

    $('#myForm').on('submit',function(e) {
        e.preventDefault();
    
        $.ajax({
            url: url,
            type: 'post',
            data: data,
            success: function (data) {
                if (data.success) {
    
                } else {
    
                }
            }
       });
    })
    

    $(document).on('submit','#myForm',function(e) {
      e.preventDefault();
    
      $.ajax({
            url: url,
            type: 'post',
            data: data,
            success: function (data) {
                if (data.success) {
    
                } else {
    
                }
            }
       });
    })
    

    JSFiddle 对多个表单使用one on change函数并获取id属性。