当前位置: 首页 > 知识库问答 >
问题:

不通过AJAX/JQuery返回值的按钮提交到自处理表单

孟英叡
2023-03-14

我有一个表单,它在Colorbox中打开,并通过Ajax/JQuery提交给自己。然而,似乎传递的数据不包括提交按钮本身的值。无论我使用多个提交还是只有一个,$_POST['submitButton']中没有数据,它也不会响应isset()或空()。

不过,其余的表格贴得很好。我可以回声$_POST['name']和$_POST['email'],但不是$_POST['SubmitButton']

这是我的表格(精简版):

<form id="sub-process" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="name" type="text" value="">
<input name="email" type="text" value="">
<input name="submitButton" type="submit" value="Submit">
</form>

这里是jquery,它处理通过AJAX提交的表单,而不是HTTP请求。

jQuery(function(){
jQuery('.cbox-form').colorbox({maxWidth: '75%', onComplete: function(){
cbox_submit();
}});
});

function cbox_submit()
{
jQuery("#sub-process").submit(function(){
jQuery.post(
  jQuery(this).attr('action'),
  jQuery(this).serialize(),
  function(data){
    jQuery().colorbox({html: data, onComplete: function(){
      cbox_submit();
    }});
  }
);
return false;
  });
}

共有3个答案

单品
2023-03-14

jQuery的serialize()函数有点古怪和特殊。我发现它在很多情况下都不太有用。您可能需要尝试serializeObject插件。我发现,当serialize()对我不起作用时,它在许多情况下都能起作用。

邢焱
2023-03-14

尝试使用$\u POST['submitButton']

白和泽
2023-03-14

我知道这是一个老问题,但看起来人们不明白@itachi有正确的答案。

序列化方法将永远不会从提交按钮返回值。它不会返回帖子中的提交按钮。您最好使用隐藏的表单字段,并向按钮添加单击事件。

 类似资料:
  • 我使用bootstrap模式获得了一个register表单,它将调用ajax post函数。 但是,它似乎并不执行我的$.post。另外,如何将php函数的返回值使用到ajax数据中?那么,如果我的createAccount返回true或其他值,我的ajax如何捕获它呢? 我的阿贾克斯。 我的CreateAccount.php 我的函数.php

  • 本文向大家介绍jquery+ajax验证不通过也提交表单问题处理,包括了jquery+ajax验证不通过也提交表单问题处理的使用技巧和注意事项,需要的朋友参考一下 validationEngine给我们为前端的表单验证减少了很大的工作量.大部分情况我们使用validationEngine验证表单的形式有几种方式: 1 使用正常的表单提交.这种情况validationEngine验证不通过是不会提交

  • 问题内容: 好吧,我试图通过按Enter提交表单,但不显示提交按钮。我不希望尽可能地使用JavaScript,因为我希望所有功能都可以在所有浏览器上正常工作(我知道的唯一JS方式就是使用事件)。 现在,表单如下所示: 哪个效果很好。当用户按下Enter键时,提交按钮将起作用,并且该按钮在Firefox,IE,Safari,Opera和Chrome中不显示。但是,我仍然不喜欢该解决方案,因为很难知道

  • 问题内容: 我有一个看起来像这样的表格: 当我绑定到表单的Submit()时,似乎无法访问用户单击的图像。因此,我试图绑定到单击图像本身(),该图像总是提交表单,无论我是否尝试 返回false; event.stopPropogation(); 要么 event.preventDefault(); 因为所有这些都是表单事件。 我应该将$ .post()附加到form.submit()事件上吗,如果

  • 问题内容: 所以假设我有3种形式 每个表单都有自己的提交按钮 现在假设我有另一种形式 其唯一的功能是同时提交所有其他3种形式。…现在这里是约束: 当submitAll提交后,它必须使用Ajax这样做,并且最好通过POST将输入的数据从所有其他3种形式转发到processor.php processor.php需要能够区分输入到哪种形式…然后分别处理每种形式的输入 我的问题是..什么是使proces

  • 问题内容: 我正在使用以下jQuery代码通过AJAX提交表单。 代码完美运行,没有ajax。 但是,如果我通过Ajax加载表单,则无法正常工作。 我认为这是因为JavaScript加载后通过ajax加载了表单。 有什么办法吗? 问题答案: 如果使用jQuery 1.7+,则可以尝试使用.on()委托事件并绑定到具有相同类的所有将来的表单。尝试查找没有动态插入的最接近的父代,而不是$(docume