2017-10-14 85 views
0

I $ .post();正確的一些形式與jQuery的元素。 現在,其中一些元素是「必需的」,當然如果它們被正確填充並返回響應,我當然可以測試服務器端,但如果我能夠觸發經典的HTML所需的錯誤,它會很好,它也證明了缺少字段。當然,我會在之後對它們進行測試,但至少我不必用javascript來突出顯示。Jquery post和html表單驗證

我不喜歡創建隱藏的帖子按鈕。也因爲我一次張貼多個表格

formX.serialize() + formX+1.serialize() + ... 

我想知道是否有辦法。謝謝你。

回答

0

您可以使用此jQuery插件來驗證您的形式:https://jqueryvalidation.org

你可以做這樣的事情:

$("#formX").validate({ 
    submitHandler: function(form) { 
     $(form).ajaxSubmit(); 
    } 
}); 
+0

由於沒有其他意見,添加。 –

1

您還可以使用serializeArray方法jQuery中還有:https://api.jquery.com/serializeArray/

示例:

$(document).ready(function() { 

var oParams = { 
    'invalid_msgs' : { 
     'title' : 'Kindly provide the title', 
     'body' : 'Kindly provide the body', 
     'type' : 'Kindly provide the type' 
    }, 
}; 

$('#frm-add-content').submit(function(event) { 
    event.preventDefault(); 
    var oFormData = $(this).serializeArray(); 
    // console.log(oFormData); 

    for (var iIndex in oFormData) { 

     if (oFormData.hasOwnProperty(iIndex) === true) { 
      var sInputKeys = oFormData[iIndex].name; // (e.g title) 
      var sInputValues = oFormData[iIndex].value; // (e.g Title 1) 

      /* If in case there are [input] fields that 
      * are not required in this case, You can set 
      * condition like this 
      * In this case, The input that had the [author] 
      * name attribute will be 'exempted' for validation 
      */ 
      var aNotRequiredInputKeys = ['author']; 
      if ($.inArray(sInputKeys, aNotRequiredInputKeys) < 0) { 
       if ($.trim(sInputValues) === '') { 
        alert(oParams.invalid_msgs[sInputKeys]); 
        return false; 
       } 
      } 

     } 
    } 

}); 

}); 

這裏是一個jsfiddle供參考:https://jsfiddle.net/xdp70kt3/2/

希望這會引導你好。

另一方面,您還可以添加required html屬性,以及如果您只想檢查是否輸入了值,則爲 。