在项目开发的过程中经常涉及到表单提交的问题,为了使得处理更加灵活一种情况是不设死表单的action属性,而是在后台设置,再显示到前台的jsp中,这是一种情况,这种情况处理起来还是不怎么轻松的。当一个表单中有多个非type为submit的按钮时,当点击按钮做一些判断以后,还是希望把表单项传递给后台,再写这篇文章之前我是这样傻傻处理的,因为表单有个循环,循环中有很多的checkbox,我要做的是当点击按钮的时候做一下判断,然后把这些checkbox的值传递给后台,如果是直接表单提交的话,直接在后台用request.getParameterValues()这种方式就可以了,但是现在我不是直接表单提交(当时傻傻的没想到还是用表单提交),我处理的是在js中设置转向,也就是重新设置window.location.href的值,不过这样就有一个问题,这些同名的checkbox怎样才能传递给后台了,url只能待String类型的参数,那怎么办了,你看我是怎么处理的:
js中:
//处理选择值
var pids="";
idsCheck.each(function(){
pids+=$(this).val()+",";
});
window.location.href=""cp.jsp?ac=product&manage=recommend&op=add&ids="+pids";
我的思路就是把这些值组成一个String,带在url中传递给后台,在后台再用String的split方法来拆成String数组,你说傻不傻,这一看就是非常规的处理方法,一直告诫自己如果你用了非常规方法,这时候后你就要想想其他的思路了,非常规方法虽然达到了效果,但是是不值得的,所以处理问题一定要先从常规的处理方法出发。
对于上面这种情况,应该怎么解决了。我觉得首先你要弄清楚你要干什么,你不就是希望点击不同的按钮后台能有不同的处理方式吗,既然你可以在js中动态转向,那为什么不直接设计form的action属性使得它提交给不同的处理方法呢,这样数据传送就方便了很多,这种处理方法相当简单,js代码如下:
//商品上架
function onsale(){
var idsCheck = $(".list input[name='ids']:checked");// ID复选框
if(idsCheck.length ===0){
alert("请选中要上架的宝贝!");
return;
}
var $listForm = $(".list form");// 列表表单
//重新设置表单action
$listForm.attr("action","cp.jsp?ac=product&manage=list&op=onsale");
$listForm.submit();
}
这个方法的思路就是,在提交表单之前,重新设置form的action,简单吧!
“海燕啊,你说你是不是傻,是不是傻”
分享到:
相关推荐
js提交表单及js表单验证 js提交表单及js表单验证 js提交表单及js表单验证
一、javascript 页面加裁时自动提交表单: Form表单: <form method="post" id="myform" action="a.php"> <input type="submit" value="提交表单"> </form> javascript 代码: [removed] ...
C# post方式提交Form表单。 C# post方式提交Form表单,可以支持带参数传入,供大家学习参考。 C# post提交表单。
完整的jq ajax提交表单,奖解压后jq文档加入页面中,调用就可惟了。 表单结构 <form id="myForm" action="comment.php" method="post"> Name: <input type="text" name="name" /> Comment: <...
js验证表单大全,用JS控制表单提交 ,javascript提交表单
提交表单生成html文件 提交表单生成html文件 提交表单生成html文件
表单提交验证类表单提交验证类表单提交验证类表单提交验证类
提交表单后提交禁用提交按钮,防止重复提交.
利用ajax提交表单完整流程
javascript通过按钮提交表单的三种方式
利用jquery的ajax提交表单数据到后台。后台使用spring.
仅使用jQuery提交表单和后台交互,不使用基于jQuery的表单插件 方式1、取到页面控件的值后拼接放在data中,传递到后台 方式2、页面序列化后放在data中,传递到后台 注:此种方式需设置页面控件的name属性
vue1/2 ajax提交表单
AJAXty提交表单
简单的ajaxt无刷新实现表单提交的实例(myeclipse 直接导入运行) 学习点: 1;ajax无刷新表单提交 2;ajax的运行历程 最简单明了的实例,清晰的帮你弄清上述概念,运行简单,只需解压该包,然后Myeclipse中file - ...
用iframe提交表单,主要是将表单提交到iframe中,可实现无刷新提交。 html页面: <iframe name="FORMSUBMIT" width="1" height="1" ></iframe> ...
ajax提交表单,并对提交中文时的乱码进行处理.
asp表单提交源码
常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数常用的表单提交判断函数