提交表单以触发 ajax 请求
Submitting a form to trigger an ajax request
我希望在我的jquery-mobile网页上有一个"联系我们"表格。当用户正确输入所有数据并按提交时,应向 asp 脚本发出 ajax post 请求。如果 asp 脚本成功,它将通过 json 将成功状态回复到发出请求的 javascript 代码。然后,我将切换到同一html文档中的另一个页面,并显示"您的消息已发送"。
我看到了一个不使用<form>
或<input>
标签的示例。
是否有可能用<form>
做我想做的事?
你会如何在html方面做到这一点,你会使用哪些javascript事件?
试试这个例子:
.HTML
<form name="contactForm" id="contactForm">
<input type="text" name="firstname" value="">
<input type="submit" name="submit" id="submitBtn" value="Submit">
</form>
.JS
$(document).ready(function () {
$("#submitBtn").click(function () {
var formData = $("#contactForm").serialize();
$.ajax({
type: "POST",
url: "YOUR FILE PATH", //serverside
data: formData,
beforeSend: function () {
//show loading image
},
success: function (result) {
console.log(result); //use this to see the response from serverside
},
error: function (e) {
console.log(e); //use this to see an error in ajax request
}
});
});
});
正如我从您的问题中的行中所理解的那样 - "然后我将切换到同一html文档中的另一个页面并显示"您的消息已发送"。"——除了Dh..."的答案,如果您想在成功时转到另一个页面,请在序列化表单数据后的 Ajax 调用之前添加此页面。
var goto=$('#yourFormId').attr('href')
然后在成功回调中使用goto
。
success: function()
{
//at the end include this:
location.href=goto;
}
注意:您可以将任何地址分配给goto
并在成功时打开该地址
对于 JQM 多页面结构,您可以在 AJAX 成功时触发点击事件。假设你的 html 页面中有这个。
<div data-role="page" id="page-one" data-title="Page 1">
<div data-role="header">
<h1>Page 1</h1>
</div>
<div data-role="content">
<p>Body copy for page 1</p>
<p><a href="#page-two" id="toPage2">Link to page 2</a></p>
</div>
<div data-role="footer">
Copyright
</div>
</div>
<div data-role="page" id="page-two" data-title="Page 2">
<div data-role="header">
<h1>Page 2</h1>
</div>
<div data-role="content">
<p>Body copy for page 2</p>
<a href="#page-one" id="toPage1">Link to page 1</a>
</div>
<div data-role="footer">
Copyright
</div>
</div>
成功后,您想打开 id 为 page-two
的Page 2
。现在Page 2
的链接在div Page 1
的<a>
标签中。所以最后,与其在 ajax 成功回调中使用 location.href
,不如使用 jquery .trigger()
success: function()
{
$('a#toPage2').trigger('click',function(){})
}
- 将 jQuery 包含在您的 HTML 中
- 使用 $.ajax() 将表单数据发送到 ASP 并相应地处理 JSON。
以下是使用 $.ajax 的文档:http://api.jquery.com/jQuery.ajax/
一些例子:http://www.w3schools.com/jquery/ajax_ajax.asp
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成