jQuery.Form.js提交表单详解ajaxSubmit()
2023-09-11 14:14:50 时间
jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交。
第一步:引入jQuery与jQuery.Form.js
1 <script src="jQuery.1.8.3.js" type="text/javascript"></script>
2 <script src="jQuery.Form.js" type="text/javascript"></script>
第二步:HTML示例代码
<div id="div1">
<form id="form1" method="get" action="#">
<p>
<label for="name">
姓名:
</label>
<input type="text" name="name" />
</p>
<p>
<label for="age">
姓名:
</label>
<input type="text" name="age" />
</p>
<p>
<label for="country">
国家:
</label>
<input type="checkbox" name="country" value="1" />蜀国
<input type="checkbox" name="country" value="2" />魏国
<input type="checkbox" name="country" value="3" />吴国
</p>
<p><input type="submit" value="确认" /></p>
</form>
</div>
<div id="div2"></div>
第三步:JS代码
$(function () {
$(":submit").click(function () {
var options = {
url: "indexAjax.aspx",
target: "#div2",
success: function (data) {
alert(data);
}
};
$("#form1").ajaxForm(options);
})
})
第四步:后台处理代码
string strName = Request["name"];
string strAge = Request["age"];
string strCountry = Request["country"];
Response.Clear();
Response.Write("姓名:" + strName + "; 年龄:" + strAge + "; 国家:" + strCountry);
Response.End();
jQuery.Form.js 配置选项options
选项 | 说明 |
url | 表单提交数据的地址 |
type | form提交的方式(method:post/get) |
target | 服务器返回的响应数据显示在元素(Id)号 |
beforeSerialize: function($form, options) | 表单数据被序列化之前执行的回调函数,如果在内部return false将终止序列化和提交。 |
beforeSubmit: function(arr, $form, options) | 表单数据被序列化成arr数组,并且在提交前触发的回调函数。 |
error | 提交失败执行的回调函数 |
success | 提交成功后执行的回调函数 |
data | 除了表单数据外,还需要额外提交到服务器的数据 |
iframe | 如果有<input type="file">是否应该使用iframe来上传文件(对旧版本浏览器而言) |
iframeSrc | 为<iframe>元素设定src属性值 |
iframeTarget | 如果你想用自己的iframe来上传文件,可以将Id传给这个属性 |
dataType | 期望服务器返回数据类型 |
clearForm | 提交成功后是否清空表单中的字段值 |
restForm | 提交成功后是否重置表单中的字段值,即恢复到页面加载时的状态 |
timeout | 设置请求时间,超过该时间后,自动退出请求,单位(毫秒) |
forceSync | |
semantic | |
uploadProgress |
可操作函数
函数 | 说明 |
ajaxForm | 提交表单 与ajaxSubmit的区别在于是否触发浏览器的提交。 |
ajaxSubmit | 提交表单 |
formSerialize | 序列化表单 |
fieldSerialize | 序列化字段 |
fieldValue | 返回某个input的字段值 |
resetForm | 重置表单为打开页时的状态 |
clearForm | 清空表单的所有值 |
clearFields | 清空某个字段值 |
对于之前的表单,我们输入值,然后序列化整个表单看看
var str = $("#form1").formSerialize(options); alert(str);
当然你也可以序列化单一个字段:
var str = $("input[name=name]").fieldSerialize(options);
返回某个字段值:
var str = $('#form1 input[name=name]').fieldValue();
ajaxSubmit()
ajaxSubmit()是第三方插件jquery.form实现;
submit() 方法触发 submit 事件,或规定当发生 submit 事件时运行的函数。$(selector).submit(function)
使用 preventDefault() 函数来阻止对表单的提交。
通常情况下,我们直接通过form提交的话, 提交后当前页面跳转到form的action所指向的页面。然而,很多时候我们比不希望提交表单后页面跳转,那么,我们就可以使用ajaxSubmit(obj)来提交数据。
$('button').on('click', function() {
$('form').on('submit', function() {
var title = $('inpur[name=title]').val(),
content = $('textarea').val();
$(this).ajaxSubmit({
type: 'post', // 提交方式 get/post
url: 'your url', // 需要提交的 url
data: {
'title': title,
'content': content
},
success: function(data) { // data 保存提交后返回的数据,一般为 json 数据
// 此处可对 data 作相关处理
alert('提交成功!');
}
$(this).resetForm(); // 提交后重置表单
});
return false; // 阻止表单自动提交事件,必须返回false,否则表单会自己再做一次提交操作,并且页面跳转
});
});
如果要提交之后返回数据再触发ajax异步交互(实际就是一个按钮触发两个事件,后一个事件要等前一个事件完成的情况才触发)
$("#uploadImage").on("submit",function () { //触发form表单提交,url写在form标签
$("#uploadImage").ajaxSubmit(options); // form表单提交后触发
return false; // 必须返回false,否则表单会自己再做一次提交操作,并且页面跳转
});
var options = {
//target: '#picSrc', //把服务器返回的内容放入id为picSrc的元素中
//beforeSubmit: function({
}), //提交前的回调函数
success:function (backData) { //提交后的回调函数
var sendData={
"srcImageFile":backData.serviceIcon,
"result":backData.serviceIcon,
};
$.ajax({
url:"/Wisdom/smartCampus/service/cutPicture",//交互地址
type:"post",//方法
//dataType:"json",
contentType:"application/json",//头部
data:JSON.stringify(sendData),//数据
success:function (backData) {
$("#uploadImage").resetForm();//重置表单
}
})
},
timeout: 3000 //限制请求的时间,当请求大于3秒后,跳出请求
};
函数 | 说明 |
ajaxForm | 提交表单 与ajaxSubmit的区别在于是否触发浏览器的提交。 |
ajaxSubmit | 提交表单 |
formSerialize | 序列化表单 |
fieldSerialize | 序列化字段 |
fieldValue | 返回某个input的字段值 |
resetForm | 重置表单为打开页时的状态 |
clearForm | 清空表单的所有值 |
clearFields | 清空某个字段值 |
相关文章
- 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
- html,css,js,jquery
- jQuery .submit()
- jquery.fileupload-image-editor.js 中actions.resizeImage
- Jquery 选择器 详解 js 判断字符串是否包含另外一个字符串
- 利用HttpWebRequest模拟表单提交 JQuery 的一个轻量级 Guid 字符串拓展插件. 轻量级Config文件AppSettings节点编辑帮助类
- jquery $.proxy使用 Jquery实现ready()的源码
- 【JS】怎样用原生JS实现jQuery的ready方法
- 【Vue/js】Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)
- 【Vue/js】Js中执行变量中的命令语句,也就是所谓的宏替换(很实用的例子)
- [转]jquery.validate.js表单验证
- js、jQuery各种高度
- PHP / JavaScript / jQuery 表单验证与处理总结: 第①部分 PHP 表单验证与处理
- 【HarmonyOS】【JS】 鸿蒙js开发使用div自带的scroll,滑动条拉不到最下面?
- 《扩展 jQuery》——第2章 第一个插件2.1 jQuery的架构
- jquery.params.js,Jquery获取页面参数,js获取页面参数
- 聊聊JS动画库:Velocity.js
- 学习jQuery这一篇就够了
- js和Jquery获取选中select值和文本
- JS: javascript 点击事件执行两次js问题 ,解决jquery绑定click事件出现点击一次执行两次问题
- jquery获得焦点和失去焦点
- jquery.validate.js 应用示例
- 【cocos2d-js官方文档】五、Cocos2d-JS v3.0的新Action API
- jquery经典实例之拖动面板
- js和jquery判断事件流
- JQuery/JS插件 linq.js 获取所有选中行的Id
- JQuery/JS插件 json2.js