簡體   English   中英

帶有jQuery表單驗證的自定義Ajax請求

[英]Custom Ajax request with jQuery form validation

我想使用jQuery表單驗證插件來驗證表單,但無法使用驗證處理程序發送自定義Ajax請求:

  $('#headForm').validate(
  {
    //submitHandler: submit,
    errorClass: "invalid",
    rules: {
      title: {maxlength: 50}
    },
    messages: {
      title: {maxlength: 'Max 50 chars'}
    }
  });

我的原始提交處理程序如下所示:

  $('#headForm').submit(function(event) 
  {
    event.preventDefault();
    $.ajax(
      {
        type: "PUT",
        url: "/target",
        data: $('#headForm').serialize(),
        dataType: "json", 
        success: function() 
          { 
            alert("ok");
          }
      });
  });

我試圖將其移至常規功能,並在驗證塊submitHandler其注冊為submitHandler ,但沒有用。

  function submit() { // impossible to pass the event!
    $.ajax( ...
  }

如何將jQuery驗證與自定義Ajax請求結合在一起?

可能的表單驗證錯誤:我已經刪除了驗證代碼,以查看提交代碼是否沒有它就可以工作。 除非我刪除了jQuery表單驗證庫的鏈接,否則它不會! 因此,看來驗證已打破jQuery核心。 我是否已經說過我喜歡動態鍵入... ;-)

您是否在submit()函數中定義了一個參數?

(我猜你沒有,這可能就是為什么它不起作用的原因)

我認為您只需要指定“ form”參數,然后對該參數調用serialize() ,如下所示:

submitHandler: function(form) { 
  $.ajax({
    type: "PUT",
    url: "/target",
    data: form.serialize(),
    dataType: "json", 
    success: function() 
      { 
        alert('ok');
      }
    });
   }

請參閱文檔: http : //docs.jquery.com/Plugins/Validation/validate#options

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM