大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你好!
萧县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
可以通过jquery.form.js来解决。
form
标题:input type="text" name="title" /br /
内容:textarea name="content"textarea/br /
button提交/button
/form
$('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; // 阻止表单自动提交事件
}
);
});
希望对你有帮助!
第一步:引用js
!--这里的min是自己用js压缩工具对完整版进行的压缩
并不是真正的min,所以好使--
script type="text/javascript" src="js/jquery-1.7.min.js"/script
script type="text/javascript" src="js/jquery.form.js"/script
第二步:页面写form
form id="showDataForm"
action="/024pm/f_shopUser.do?method=login" method="post"
input type="text" value="" name="name" maxlength="2"/
input type="password" value="" name="password" maxlength="2"/
input type="submit" value="提交"/
/form
div id="output1"
style="width:1000px;height:200px;"
/div
第三步:写js调用jquery.form.js,对form表单进行ajax提交
$(document).ready(function() {
var options = {
target: '#output1',
// 从服务传过来的数据显示在这个div内部
也就是ajax局部刷新
beforeSubmit: showRequest,
// ajax提交之前的处理
success: showResponse
// 处理之后的处理
};
$('#showDataForm').submit(function() {
$(this).ajaxSubmit(options);
return false;
//非常重要,如果是false,则表明是不跳转
//在本页上处理,也就是ajax,如果是非false,则传统的form跳转。
});
});
function showResponse(responseText, statusText, xhr, $form) {
alert(xhr.responseText+"=="+$form.attr("method")+'status: ' +
statusText + '\n\nresponseText: \n' + responseText);
//xhr:说明你可以用ajax来自己再次发出请求
//$form:是那个form对象,是一个jquery对象
//statusText:状态,成功则为success
//responseText,服务器返回的是字符串(当然包括html,不包括json)
}
function showRequest(formData, jqForm, options) {
//formData是数组,就是各个input的键值map数组
//通过这个方法来进行处理出来拼凑出来字符串。
//formData:拼凑出来的form字符串,比如name=herapassword,
//其实就是各个表单中的input的键值对,
//如果加上method=XXXX,那也就是相当于ajax内的data。
var queryString = $.param(formData);
alert(queryString+"======"+formData.length);
for (var i=0; i formData.length; i++) {
alert(formData[i].value+"==============="+formData[i].name);
}
//jqForm,jquery form对象
var formElement = jqForm[0];
alert($(formElement).attr("method"));
alert($(jqForm[0].name).attr("maxlength"));
//非常重要,返回true则说明在提交ajax之前你验证
//成功,则提交ajax form
//如果验证不成功,则返回非true,不提交
return true;
}
options对象内的值有哪些?
var options = {
target: '#output1',
data:{param1:"我自己的第一个额外的参数"},
//这个参数是指通过ajax来给服务器提交除了form内部input的参数
//在后台中使用String param1=req.getParameter("param1");获取。
// dataType: null,
dataType:'json',
//这个参数值的是服务器返回的数据类型,默认的是null
//也就是服务器可以默认返回字符串,然后将这些字符串放在target内部
//当然还有json、xml,其中最常用的便是null和json
//对于span style="color: #333333;"a href="" target="_blank"span style="color: #333333;"json/span/a/span的使用,我们会稍后讲解到
beforeSubmit: showRequest,
success: successRes,
type:'POST'
//提交方式,默认是自己在form标签上指定的method
//如果没有指定,则使用get。
url:''
//重新提交的url,即url可以在form中配置
//也可以在这里配置。
};
$("form").serializearray();
serializearray()方法
格式:var
jsondata
=
$("form").serializearray();
功能:将页面表单序列化成一个json结构的对象。注意不是json字符串。
比如,[{"name":"lihui",
"age":"20"},{...}]
获取数据为
jsondata[0].name
然后对jsondata对象追加数据也可以哦。
ajax的表单提交只能提交data数据到后台,没法实现file文件的上传还有展示进度功能,这里用到form.js的插件来实现,搭配css样式简单易上手,而且高大上,推荐使用。
需要解释下我的结构, #upload-input-file 的input标签是真实的文件上传按钮,包裹form标签后可以实现上传功能, #upload-input-btn 的button标签是展示给用户的按钮,因为需要样式的美化。上传完成生成的文件名将会显示在 .upload-file-result 里面, .progress 是进度条的位置,先让他隐藏加上 hidden 的class, .progress-bar 是进度条的主体, .progress-bar-status 是进度条的文本提醒。
去掉hidden的class,看到的效果是这样的
[图片上传失败...(image-2c700a-1548557865446)]
将上传事件绑定在file的input里面,绑定方式就随意了。
var progress = $(".progress-bar"), status = $(".progress-bar-status"), percentVal = '0%'; //上传步骤 $("#myupload").ajaxSubmit({ url: uploadUrl, type: "POST", dataType: 'json', beforeSend: function () { $(".progress").removeClass("hidden"); progress.width(percentVal); status.html(percentVal); }, uploadProgress: function (event, position, total, percentComplete) { percentVal = percentComplete + '%'; progress.width(percentVal); status.html(percentVal); console.log(percentVal, position, total); }, success: function (result) { percentVal = '100%'; progress.width(percentVal); status.html(percentVal); //获取上传文件信息 uploadFileResult.push(result); // console.log(uploadFileResult); $(".upload-file-result").html(result.name); $("#upload-input-file").val(''); }, error: function (XMLHttpRequest, textStatus, errorThrown) { console.log(errorThrown); $(".upload-file-result").empty(); } });
[图片上传失败...(image-3d6ae0-1548557865446)]
[图片上传失败...(image-9f0adf-1548557865446)]
更多用法可以 参考官网