在ajax调用之后,表单验证不起作用

时间:2017-03-16 10:06:41

标签: javascript jquery ajax validation html-validation

表单验证在使用ajax调用加载表单后无法正常工作。我该如何解决这个问题?



$(document).ready(function() {
  // $('#add_product').submit(function(e){
  $(document).on('submit', '#add_product', function(e) {
    e.preventDefault();
    $.post('script/test.php', {
        naam: $('#naam').val()
      })
      .done(function(response) {
        bootbox.alert(response);
        parent.fadeOut('slow');
      })
      .fail(function() {
        bootbox.alert('error');
      })
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="add_product" method="post">
  <div class="modal-body">
    <div class="header add_product">
      <div class="form-group">
        <label class="control-label">Productnaam*</label>
        <input maxlength="250" id="naam" type="text" required="required" class="form-control" name="naam" />
      </div>
    </div>
    <hr/>

    <div class="modal-footer ">
      <button class="btn btn-success completeBtn btn-lg" name="submit" type="submit" style="width: 100%;">
                        <span class="glyphicon glyphicon-ok-sign"></span> Toevoegen
                    </button>
    </div>
</form>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

api.jquery所述,

  

.submit()方法是第一个版本中.on( "submit", handler )的快捷方式,第三个版本中是.trigger( "submit" )

因此两个构造的行为应该相同。

此外,您将submit活动从#add_product委托给性能低下的document,因为它现在必须侦听文档中的所有提交事件。

也许是因为事件委托,你的代码中可能有一个e.stopPropagation,这会阻止事件自然冒泡到文档中,因此不会执行处理程序。

如果可能的话,将范围限制在一定程度上比听取文档要好得多。

尝试以下方法:

$(document).ready(function(){
        $('#add_product').on('submit', function(e) {
        e.preventDefault();
        $.post('script/test.php',
            {naam: $('#naam').val()})
            .done(function(response){
                bootbox.alert(response);
                parent.fadeOut('slow');
            })
            .fail(function(){
                bootbox.alert('error');
            })
    });
});

答案 1 :(得分:0)

尝试添加&#39;返回false&#39;在你的处理程序中:

def on_mousewheel(event):
    shift = (event.state & 0x1) != 0
    scroll = -1 if event.delta > 0 else 1
    if shift:
        canvas.xview_scroll(scroll, "units")
    else:
        canvas.yview_scroll(scroll, "units")

答案 2 :(得分:0)

尝试以下方法:

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    filterSelectedCategoryList = selectedCategoryList.filter { titles in
        return (titles?["healerName"].stringValue.lowercased().contains(searchText.lowercased()))!
    }
    tableView.reloadData()
}
$(document).ready(function() {
    $('#add_product').on('submit', function(e) {
        e.preventDefault();
        $.post('script/test.php', { naam: $('#naam').val() })
            .done(function(response) {
                bootbox.alert(response);
                parent.fadeOut('slow');
            })
            .fail(function() {
                bootbox.alert('error');
            })
    });
});