我将尝试非常缓慢地引导您完成此过程。我正在尝试进行经常更改的民意调查,因此我必须使其具有动态性。我还需要在不重新加载页面的情况下使用它,所以我需要使用 Ajax 来提交表单。所以我所做的就是创建一个 PHP 脚本来为我响应投票。这很好用,我得到了我想要的民意调查。哦,是的,忘了说这是一个多步骤民意调查。我通过在 JQM“页面”中隐藏/显示 div 一次浏览 2-4 个问题。我的意思是:
<div data-role='page'>
在最后一页,我确实有一个提交按钮而不是下一个按钮,因为民意调查显然没有“下一个”div 来显示。这个提交按钮在任何情况下都不起作用,形状或形式工作,因此是这里的问题。
$("#submit").click(function()
{
if ($("#form").validate())
{
$.ajax(
{
type:'POST',
url:'add.php',
data:$('#form').serialize(),
success:function(response)
{
$("#answers").html(response);
}
});
}
else
{
return false;
}
})
这应该将我的表单数据发送到另一个名为add.php的 PHP 文件,然后应该将其发布到下面显示的 div 中。(它真的应该只是保存到数据库,但我尝试回显它,直到我看到它有效)。现在,转折是我在非动态表单上编写了另一段相同的代码,该表单不是通过 PHP 创建的,而只是用 HTML 绘制的。这也是一个跨越 3 个 div/“页面”的多步骤民意调查。这完全没有问题提交。
总结一下:我有两个不同的项目,每个项目都解决了我一半的问题。一个动态生成表单,另一个保存我制作的静态表单。两种形式都由各种复选框、单选按钮和文本区域组成。问题是,他们不会一起工作。当我单击提交按钮时,我希望表单将答案回显到此 div 中(您阅读了几行的那个):
<div data-role="content" id="answers">
Answers comes here:
</div>
然而,这个 div 保持不变。我将 $("#submit").click(function()) 剥离为 alert('test'); 我仍然无法得到反应。我已经对变量名称和 div 名称以及任何其他相关名称进行了千万亿次检查,并且我对每个单独的部分(生成民意调查和使用 ajax 发布)以及我的尝试进行了各种细微调整将它们组合起来没有成功。那么,百万美元的问题是什么可能是错的?我剩下的最后一个假设是,在生成投票的脚本之前加载了 $("#submit").click ... 的 JavaScript 函数。这是有道理的,当提交点击函数被声明时,它不会链接到任何按钮,如下所示:
<input type="button" id="submit" name="Submit"/>
有没有人知道我如何让这个提交按钮工作,甚至知道为什么它不起作用?感谢读到这里的任何人,我希望你提出并愿意分享一些可以帮助我的知识。还要感谢 Stack Overflow 的创建者为此实现了一个 alt+z 函数,因为我在写这句话之前的句子时不小心点击了 alt+a 然后随机字母。祝你今天过得愉快!
编辑:在凯文的提示后尝试了这个答案,但即使是第一个警报按钮也没有反应:
$("#submit").click(function()
{
alert("it works");
if ($("#form").validate())
{
$.ajax(
{
type:'POST',
url:'add.php',
data:$('#form').serialize(),
success:function(response)
{
$("#answers").html(response);
return false;
}
});
}
else
{
return false;
}
})
});