我正在尝试在用户提交表单时运行PHP文件。但是,submit()函数永远不会运行。我已阅读了很多帖子,对此提出了建议,但没有一个帖子解决了这个问题。所以我有一个看起来像这样的表格:
<body>
<form id="signupform">
<div id="required">
<table>
Form fields
</table>
</div>
<div id="notrequired">
<table>
More form fields
</table>
</div>
<button type="Submit" name="action">Submit</button>
</form>
<script>
$(document).ready(function() {
$("#signupform").submit(function(e) {
alert("Please work!");
$.ajax({
type : 'POST',
url : 'process.php',
data : JSON.stringify($'signupform').serializeArray(),
dataType: 'json'
})
//More code
});
}););
</script>
</body>
除了类型外,没有任何内容具有“&#39;提交&#39;在文件中。我已经尝试过使用和不使用$(document).ready()。所以我几乎没有想法。任何建议。
哦,它不能在任何浏览器上运行。
答案 0 :(得分:0)
这一行有语法错误:
data : JSON.stringify($'signupform').serializeArray(),
您错过了$()
来电中的括号。
此外,您错过了#
按ID选择,而您可能想要.serialize()
而不是.serializeArray()
,但显然实际上并非如此语法错误。
应该是:
data : JSON.stringify($('#signupform').serialize()),
// add parens here -------^ ^ and here ------------^
// add # here --------------/
在你的函数末尾还有一个额外的);
应该删除。
你真的不需要JSON.stringify()
:
data : $('#signupform').serialize(),
在某个地方(也许你已经在你的&#34;更多代码&#34;部分中已经有了这个)你想要停止默认表单提交动作:
e.preventDefault();
答案 1 :(得分:0)
在脚本标记中添加此编辑过的代码:
$(document).ready(function()
{
$("#signupform").submit(function(e)
{
alert("Please work!");
$.ajax({
type : 'POST',
url : 'process.php',
data : JSON.stringify($('#signupform').serializeArray()),
dataType: 'json'
})
//More code
});
});
希望这有帮助。