我是靠谱客的博主 无限老师,最近开发中收集的这篇文章主要介绍普通的form提交、ajax提交和jQuery的ajax的form提交,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这篇文章自己记录学习使用,有部分缺失,可对于我们菜鸟来说够用了,哈哈,本文采用的SSM框架,具体看下边,看完再走哈。

一、普通的form提交

  1. jsp,简单的用户属性
<form id="userform" action="${pageContext.request.contextPath}/user/addsysusersubmit.action" method="post">
<table>
<tr>
<td>用户账号</td>
<td><input type="text" id="sysuser_userid" name="sysuserCustom.userid" /></td>
</tr>
<tr>
<td>用户名</td>
<td><input type="text" id="sysuser_username" name="sysuserCustom.username" /></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" id="sysuser_password" name="sysuserCustom.pwd" /></td>
</tr>
<tr>
<td>用户类型</td>
<td><input type="text" id="sysuser_groupid" name="sysuserCustom.groupid" /></td>
</tr>
<tr>
<td><input type="submit" />
</td>
</tr>
</table>
</form>

2.js
这里不需要js控制,直接用form的action提交即可

3.controller

@RequestMapping("/addsysusersubmit")
public String addsysusersubmit(SysuserCustom sysuserCustom)throws Exception{
//简单打印一个属性

System.out.println(sysuserCustom.getUserid());
return null;
}

这种方法最简单,但个人觉得比较死板,可能我太笨了。这里前端通过form的action将表单数据封装成一个SysuserCustom对象传给后台处理,大伙可深入spring源码了解如何封装的,其实我都没深入过,郁闷。

二、普通的ajax提交

对于此方式,个人不太喜欢,觉得繁琐。
1. jsp

用了一个很简单的form表单,没有贴测试版本,这里排版出问题。

<form id="userform">
<table>
<tr>
<td>用户账号</td>
<td><input type="text" id="sysuser_userid" name="sysuserCustom.userid" /></td>
</tr>
<tr>
<td>用户名</td>
<td><input type="text" id="sysuser_username" name="sysuserCustom.username" /></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" id="sysuser_password" name="sysuserCustom.pwd" /></td>
</tr>
<tr>
<td>用户类型</td>
<td><input type="text" id="sysuser_groupid" name="sysuserCustom.groupid" /></td>
</tr>
<tr>
<td><a id="submitbtn" href="#" onclick="sysusersave()">提交</a>
</td>
</tr>
</table>
</form>
  1. js
function sysusersave(){
var userid = $("#sysuser_userid").val() ;
var username = $("#sysuser_username").val() ;
var password = $("#sysuser_password").val() ;
var groupid = $("#sysuser_groupid").val() ;
if(username =="" || userid == "" || groupid =="" || password == ""){
$("#sysuser_msg").html("请将数据填写完整");
return ;
}else{
$("#sysuser_msg").html("");
}
var json = {
"username": username,
"userid":userid,
"groupid":groupid,
"password":password,
};
$.ajax({
type:"POST",
//post提交方式,默认是get
url:"addsysusersubmit.action",
data:json,
error:function(request) {
// 设置表单提交出错

$("#sysuser_msg").html(request); //登录错误提示信息
},
success:function(data) {
if(data=="false"){
$("#sysuser_msg").html("系统错误");
return ;
}else{
$.messager.show( {
msg : '新增成功',
title : '提示'
});
}
}
}); 

这种方式必须把表单的每一条数据进行获取,并提交给action进行处理。略微繁琐。这里js没有直接放在jsp中,所以ajax中的url直接是url:"addsysusersubmit.action", 而且在使用js之前记得调用jquery。
3. controller

@RequestMapping("/addsysusersubmit")
public String addsysusersubmit(SysuserCustom sysuserCustom)throws Exception{
//简单的打印一个属性 
System.out.println(sysuserCustom.getUserid());
return null;
}

三、jQuery的ajax的form提交

下边来使用jquery,个人觉得很方便,具体看下边。
1. jsp

<form id="sysusereditform" name="sysusereditform" action="${pageContext.request.contextPath}/user/sysusersave.action" method="post">
<table>
<tr>
<td>用户账号</td>
<td><input type="text" id="sysuser_userid" name="sysuserCustom.userid" /></td>
</tr>
<tr>
<td>用户名</td>
<td><input type="text" id="sysuser_username" name="sysuserCustom.username" /></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" id="sysuser_password" name="sysuserCustom.pwd" /></td>
</tr>
<tr>
<td>用户类型</td>
<td><input type="text" id="sysuser_groupid" name="sysuserCustom.groupid" /></td>
</tr>
<tr>
<td><a id="submitbtn" href="#" onclick="sysusersave()">提交</a>
</td>
</tr>
</table>
</form>
  1. js
//提交表单
function sysusersave(){
if($.formValidator.pageIsValid()){//校验表单输入信息是否合法
//使用jquery的ajax from提交,指定from的id和回调方法,提交的url使用提from中的action,参数为空,传递JSON字符串(去掉也不报错)
jquerySubByFId('sysusereditform',sysusersave_callback,null,"json");
}
}
//from提交的回调方法,data是提交的返回的数据
function sysusersave_callback(data){
message_alert(data);
}

注意:上面的回调函数,是action处理后,返回JSON的数据传给了参数data。

上面函数具体的实现(没有封装的代码):要传递四个参数

/*
*form提交(post方式)
*
*formId form Id
*callbackfn 回调函数名(要求函数必须有参数且不能多与两个,一个参数时参数为响应文本,两个参数时第一个参数为响应文本)
*param 回调函数参数(如果为null,那么调用一个参数的回调函数,否则调用两个参数的回调函数)
*/
function jquerySubByFId(formId,callbackFn,param,dataType){
var formObj = jQuery("#" + formId);
var options = {
dataType:
("undefined"!=dataType && null!=dataType)?dataType:"json",
success: function(responseText) {
if(param === null){
callbackFn(responseText);
}else{
callbackFn(responseText,param);
}
}
};
formObj.ajaxSubmit(options);
}

最方便的在下面,校验表单输入信息是否合法:使用的是jQuery easyui的内置校验器,如下 ,列举出来的对用户账号进行的校验:

$(function (){
/******表单校验*************/
$.formValidator.initConfig({
formID : "sysusereditform",
theme : "Default",
onError : function(msg, obj, errorlist) {
//alert(msg);
}
});
//用户账号
$("#sysuser_userid").formValidator({
onShow : "",
onCorrect:" "
}).inputValidator({
min : 1,
max : 20,
onError : "请输入用户账号(最长10个字符)"
});
});

这里贴一个自己的js脚本


$(function (){
//***********按钮**************
$('#submitbtn').linkbutton({
iconCls: 'icon-ok'
});
$('#closebtn').linkbutton({
iconCls: 'icon-cancel'
});
//**********表单校验*************
$.formValidator.initConfig({
formID : "sysusereditform",
theme : "Default",
onError : function(msg, obj, errorlist) {
//alert(msg);
}
});
//用户账号
$("#sysuser_userid").formValidator({
onShow : "",
onCorrect:"&nbsp;"
}).inputValidator({
min : 1,
max : 20,
onError : "请输入用户账号(最长10个字符)"
});
//用户名称
$("#sysuser_username").formValidator({
onShow : "",
onCorrect:"&nbsp;"
}).inputValidator({
min : 1,
max : 120,
onError : "请输入用户名称(最长60个字符)"
});
//用户类型
$("#sysuser_groupid").formValidator({
onShow : "",
onCorrect:"&nbsp;"
}).inputValidator({
min : 1,
onError : "请选择用户类型"
});
//用户密码
$("#sysuser_password").formValidator({
onShow : "",
onCorrect:"&nbsp;"
}).inputValidator({
min : 1,
max : 10,
onError : "请填写用户密码(最长10个字符)"
});
});
function sysusersave(){
if($.formValidator.pageIsValid()){
jquerySubByFId('sysusereditform',sysusersave_callback,null,"json");
}
}
function sysusersave_callback(data){
var result = getCallbackData(data);
var type = result.type;
_alert(result);
/* if (TYPE_RESULT_SUCCESS == type) {
parent.sysuserquery();
parent.closemodalwindow();
}
*/
}
</script>

再详细的jquery,大家可以参考http://blog.csdn.net/tangliuqing/article/details/34399627,我也参考了的。
3. controller
与前面相同,这里不列出了。

到此,完事。我是一只菜鸟,本篇文章如有不妥之处,请大家指正,大神指正,在此谢谢各位。

最后

以上就是无限老师为你收集整理的普通的form提交、ajax提交和jQuery的ajax的form提交的全部内容,希望文章能够帮你解决普通的form提交、ajax提交和jQuery的ajax的form提交所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部