jQuery-Ajax post请求加载相同的页面,并将表单数据添加到URL中

我有一个HTML格式的注册表格,我在下面附上了它

<表单id=“registerForm”>
<输入type=“text”pattern=“[A-Za-z]{1,20}”占位符=“First Name”Name=“guestFName”title=“最多20个字母字符”必填项>
<输入type=“text”pattern=“[A-Za-z]{1,20}”占位符=“Last Name”Name=“guestLName”title=“最多20个字母字符”必填项>
<输入type=“email”placeholder=“email”name=“guestEmail”title=“必须是有效的电子邮件地址”必填项>
<输入type=“text”pattern=“08[36579]-\d{7}”placeholder=“Phone Number”name=“guestPhone”title=“必须是格式为08?-7位”的爱尔兰手机号码>
<输入type=“password”pattern=“(?=.*\d)(?=.[a-z])(?=.[a-z])。{8,20}”占位符=“password”name=“guestPassword”title=“必须是8个或更多字符长,并且至少包含一个数字和一个大写字母”必填项>
<br>
<按钮id=“myButton”>注册&lt/按钮>
&lt/表格>

当有人填写表单时,我试图将表单中的信息发布到python API,然后python API将信息插入MySQL数据库

我想要HTML中所需的和模式的功能

我使用jQuery3.1.1和Ajax将表单数据发布到API

我的JQuery/Ajax附在下面:

$(“#注册执行”).submit(函数()
{
$.ajax(
{
url:“url在这里”,
数据:$('#registerForm')。序列化(),
键入:“POST”,
异步:false
})
.完成(功能(响应)
{
控制台日志(响应);
var result=JSON.parse(响应);
})
});

我认为这应该是可行的,但是如果我填写表单并单击Register按钮,它会重新加载页面并将表单信息添加到URL中

这方面的一个例子是:

URL\u GOES\u HERE/register.html?guestFName=Joe&guestLName=Bloggs&guestEmail=bloggs%40gmail.com&留言电话=087-1111111&guestPassword=TestPassword1

为什么会这样

非常感谢您的帮助

编辑:e.preventDefault();没有解决问题

我认为你应该使用&lt;输入类型=“按钮”&gt而不是&lt;按钮&gt</只需使用。单击(事件的&lt;输入类型=“按钮”&gt如下所示

改变

&lt;按钮id=“myButton”&gt;注册&lt/按钮&gt;

&lt;输入类型='button'id='btnRegeister'值='Register'/&gt;

还有JS

改变

$(“#注册执行”).submit(函数()

$(“#btnReeister”)。单击(函数()

现在,您的整个代码如下所示

&lt;form id=“registerForm”&gt;
&lt;输入type=“text”pattern=“[A-Za-z]{1,20}”占位符=“First Name”Name=“guestFName”title=“最多20个字母字符”必填项&gt;
&lt;输入type=“text”pattern=“[A-Za-z]{1,20}”占位符=“Last Name”Name=“guestLName”title=“最多20个字母字符”必需&gt;
&lt;需要输入type=“email”placeholder=“email”name=“guestEmail”title=“必须是有效的电子邮件地址”&gt;
&lt;input type=“text”pattern=“08[36579]-\d{7}”placeholder=“Phone Number”name=“guestPhone”title=“必须是格式为08?-7位”的爱尔兰手机号码&gt;
&lt;input type=“password”pattern=“(?=.*\d)(?=.[a-z])(?=.[a-z])。{8,20}”placeholder=“password”name=“guestPassword”title=“必须是8个或更多字符,并且至少包含一个数字和一个大写字母”&gt;
&lt;br&gt;
&lt;输入类型='button'id='btnRegeister'值='Register'/&gt;
&lt;/form&gt;
$(文档).ready(函数(){
$(“#btnReeister”)。单击(函数()
{
$.ajax(
{
url:“url在这里”,
数据:$('#registerForm')。序列化(),
键入:“POST”,
异步:false
})
.完成(功能(响应)
{
控制台日志(响应);
var result=JSON.parse(响应);
})
});
});

试试上面的代码,它对我有用

发表评论