如何检查onsubmit事件中的请求类型(ajax或no)?

时间:2016-02-19 15:41:40

标签: javascript ajax

在我的申请表中,有时会直接提交,有时也会提交 来自jquery插件的.ajaxForm()。 我想知道表单是如何提交的。我可以在onsubmit事件中了解这个吗?

$(document).on('submit', 'form', function(e) {
   if (e.method_to_check_is request_was_ajax)  
   // rest of code here
 });

经过几次评论后,我必须编辑问题。

2 个答案:

答案 0 :(得分:1)

您的活动已绑定到您的提交活动,而不是此时的ajax通话。

但是,如果您想要执行检查以查看此提交应该执行的操作,您可以:

在你的标记中加入:

<form id="my-id" class="my-forms" method="GET">
 <button type="submit"></button>
</form>

这是你的js:

$('#my-id').on('submit', function(e) {
   e.preventDefault();
   var method = this.method;

   if (method === 'GET') {
   console.log(method);
   // do your ajax.get
   }

   if (method === 'POST') {
   console.log(method);
   // do your ajax.post
} 
});

当然,这个例子是设计的,因为this.method上的$('#my-id')始终是'GET'。但是,您可以将选择器更改为$('.my-forms'),以使用.my-forms类拦截所有元素中的此事件。

答案 1 :(得分:1)

根据你的描述,它不会是一个ajax请求,因为你正在使用on('submit', function(){});,当你提交html表单时它被调用,它将是对服务器的html请求。

如果您仍想检查请求是GET还是POST的类型,您可以检查表单的method属性。

$(document).on('submit', 'form', function(e) {
   e.preventDefault();
   var method = this.method;
   if(method=='GET')
   //do something
   if(method=='POST')
   //do something
 });