ajax提交form表单(通过ajax提交form表单数据的几种方式)
一、jqueryajax如何向jsp提交表单数据_jquery
AJAX越来越火了,作为一个WEB程序开发者要是不会这个感觉就要落伍,甚至有可能在求职的时候屡被淘汰。我也是一个WEB程序开发者,当然我也要“随波逐流”一把,不然饭碗不保啊!
之前实现AJAX使用Javascript脚本一个一个敲出来的,很繁琐。学习Jquery之后就感觉实现AJAX并不是那么的困难了,当然除了 Jquery框架外还有其它的优秀框架这里我就着重说下比较流行的Jquery。Jquery AJAX提交表单有两种方式,一是url参数提交数据,二是form提交(和平常一样在后台可以获取到Form表单的值)。在所要提交的表单中,如果元素很多的话建议用第二种方式进行提交,当然你要是想练练“打字水平”的话用第一种方式提交也未尝不可,相信开发者都不想费白劲吧!
ajax技术带给我们的是良好的用户体验,同时,使用jquery可以简化开发,提高工作效率。
下面介绍一下大致的开发步骤。
本文使用的是 jquery-1.3.2.min.js开发工具。
新建两个页面:
1、show.jsp:调用ajax,将表单中的数据发送给ajax.jsp页面。
2、ajax.jsp:获取show.jsp页面传递的表单数据,并返回结果。
两个页面的编码格式要设置为GBK:
show.jsp页面的重点部分:
1、添加对 jquery-1.3.2.min.js的引用:
2、设置表单的id,在调用ajax的方法时要用到。
3、设置一个div,用于显示ajax.jsp页面返回的结果
4、增加一个按钮,用来调用ajax
5、增加调用ajax的函数:
ajax.jsp页面的源代码:
运行效果如下:
jquery ajax提交表单从action传值到jsp
jsp页面:
代码如下:
acion类:
代码如下:
pw.print(random);这里的random就是action要向jsp传的值,在jsp中,success: function(text)这里的text就是接收从action传过来的值。
二、如何用jqueryajax请求form表单
第一步:引用js
<!--这里的min是自己用js压缩工具对完整版进行的压缩
并不是真正的min,所以好使-->
<scripttype="text/javascript"src="js/jquery-1.7.min.js"></script>
<scripttype="text/javascript"src="js/jquery.form.js"></script>
第二步:页面写form
<formid="showDataForm"
action="/024pm/f_shopUser.do?method=login"method="post">
<inputtype="text"value=""name="name"maxlength="2"/>
<inputtype="password"value=""name="password"maxlength="2"/>
<inputtype="submit"value="提交"/>
</form>
<divid="output1"
style="width:1000px;height:200px;">
</div>
第三步:写js调用jquery.form.js,对form表单进行ajax提交
$(document).ready(function(){
varoptions={
target:'#output1',
//从服务传过来的数据显示在这个div内部
也就是ajax局部刷新
beforeSubmit:showRequest,
//ajax提交之前的处理
success:showResponse
//处理之后的处理
};
$('#showDataForm').submit(function(){
$(this).ajaxSubmit(options);
returnfalse;
//非常重要,如果是false,则表明是不跳转
//在本页上处理,也就是ajax,如果是非false,则传统的form跳转。
});
});
functionshowResponse(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)
}
functionshowRequest(formData,jqForm,options){
//formData是数组,就是各个input的键值map数组
//通过这个方法来进行处理出来拼凑出来字符串。
//formData:拼凑出来的form字符串,比如name=hera&password,
//其实就是各个表单中的input的键值对,
//如果加上method=XXXX,那也就是相当于ajax内的data。
varqueryString=$.param(formData);
alert(queryString+"======"+formData.length);
for(vari=0;i<formData.length;i++){
alert(formData[i].value+"==============="+formData[i].name);
}
//jqForm,jqueryform对象
varformElement=jqForm[0];
alert($(formElement).attr("method"));
alert($(jqForm[0].name).attr("maxlength"));
//非常重要,返回true则说明在提交ajax之前你验证
//成功,则提交ajaxform
//如果验证不成功,则返回非true,不提交
returntrue;
}
options对象内的值有哪些?
varoptions={
target:'#output1',
data:{param1:"我自己的第一个额外的参数"},
//这个参数是指通过ajax来给服务器提交除了form内部input的参数
//在后台中使用Stringparam1=req.getParameter("param1");获取。
//dataType:null,
dataType:'json',
//这个参数值的是服务器返回的数据类型,默认的是null
//也就是服务器可以默认返回字符串,然后将这些字符串放在target内部
//当然还有json、xml,其中最常用的便是null和json
//对于<spanstyle="color:#333333;"><arel="external nofollow" href=""target="_blank"><spanstyle="color:#333333;">json</span></a></span>的使用,我们会稍后讲解到
beforeSubmit:showRequest,
success:successRes,
type:'POST'
//提交方式,默认是自己在form标签上指定的method
//如果没有指定,则使用get。
url:''
//重新提交的url,即url可以在form中配置
//也可以在这里配置。
};
三、form如何提交form如何提交到后端
提交form表单的几种方法
方法一:使用form的onsubmit()函数。Html代码
document.reply.title.focus()。
返回false
}
if(document.forms[0].cont.value==
document.reply.cont.focus();
返回false
}
返回true
}
注意:
1.1.onsubmit属性的内容必须有return关键字,否则函数会直接执行,不会返回。
2.validateForm必须返回布尔类型的返回值
3.提交按钮应该写成提交类型。
方法2:使用onclick()函数,它的输入类型是submitcomponent。
1.putonsubmit=属性,去掉。
2.为“提交”按钮添加onclick事件,如下所示:
项目名称
document.getelementbyid(项目名称
返回;
}
with(document.getElementByIditemForm
action=;
submit();
}
}
//返回
函数goBack(){
window.self.location=item.do?command=list;
}
注意:
1.提交时,设置表单的action和methods属性,然后使用form.submit()函数提交。
总结:
1.在验证表单中的组件时,前两个使用name属性,包括表单本身。
2.如果提交表单时没有响应,并且确定提交的表单中某些代码没有问题,请检查提交表单前面的js代码。有时候之前js的错误会造成莫名其妙的问题。
如何获取form表单提交后返回值?
1.给form添加id值:formaction="/News/SaveMessage"method="post"accept-charset="utf-8"id="frm-reg"name="frm-reg">设置所有input标签的name属性值为数据库的字段值,即可以传值到后台2.给提交按钮添加id值:inputtype="button"id="sub"name="Submit"value="提交">3.引用jquery-form.js文件4.jquery表单提交:
form组件的提交函数由什么组成?
jquery-form.js这个插件来实现回调函数:
formid="addform"method="post"action="请求接口地址"enctype="multipart/form-data"target="rfFrame">
p>
p>
labelfor="customName">广告包名称/label>
p>
inputtype="text"name="customName"id="customName"placeholder="广告包名称">
/p>
/p>
p>
labelfor="limited">日限量/label>
p>
inputtype="text"name="limited"id="limited"placeholder="每日下载次数">
/p>
/p>
p>
labelfor="file">URL地址/label>
p>
inputtype="file"name="file"id="file">
/p>
/p>
!--/.box-body-->
p>
labelfor="submit">/label>
p>
buttontype="button"id="submit">提交/button>
/p>
/p>
!--/.box-footer-->
/form>
iframeid="rfFrame"name="rfFrame"src="about:blank">/iframe>
注意:target="rfFrame"调取的是下面这个iframe的id值。作用是为了提交表单时防止页面跳转;表单要上传文件时需设置属性enctype="multipart/form-data",具体原因不太清楚;
好了,现在要上jquery-form.js的提交代码了:
$("#submit").click(function(){
varoptions={
url:请求接口地址,//同action
type:'post',
beforeSend:function(xhr){//请求之前
varindex=layer.load(1,{
shade://0.5透明度的黑色背景
});
},
success:function(data)
{
},
complete:function(xhr){//请求完成
layer.closeAll('loading');
//询问框
layer.confirm('广告主修改成功!页面将跳转到列表页。',{
btn://按钮
},function(){
location.rel="external nofollow" href="adList.html";//location.href实现客户端页面的跳转
});
},
error:function(xhr,status,msg){
//alert("状态码"+status+";"+msg)
layer.msg('玩命加载中..');
}
};
$("#addform").ajaxSubmit(options);
});
另外说明一下,如果没有上传文件的话,完全可以使用ajax请求就好了,没必要这么折腾。那也就说明ajax请求不能够上传文件,ajax只能传递文本类信息。
form表单通过js提交,另外跳转servlet时,自己定义了一个数,传参过去,可以吗,不是fo?
自定义参数,可以通过在form表单中设置隐藏域传值inputtype="hidden"name="arg_name"value="arg_value"/>后台通过arg_name接收arg_value的值
form表单某个input的值不提交怎么写?
题主,一般的参数传递,可以通过GET和POST的方式提交到后台,你现在提到的input是form表单中的一个元素,通过指定form的action来提交到后台。而后台本质上是根据Socket来解析流。具体传到后台的值,可以打开浏览器的
开发者工具(F12打开)
观察。对于参数的解析,我在自己的公众号之前写过,题主可以过去看下是否有帮助。快看被错用了这么久的GET和POST方法到底有什么区别
Tomcat是如何处理请求参数的?
总结起来就是把解析出来的参数名和值对应起来存到一个Map里,取的时候根据名称再拿出来。form的提交放式是action还是method?
formaction=提交到哪儿?method=提交的方式(post或get)>
希望能帮到你!