1.jquery中使用submit提交按钮时,当return false后,依然会提交表单的
解决的办法是:使用button按钮,而不是submit按钮 看下面的例子
<form id="form" action="back.action" method="get">
<input type="text" id="backSelect" value=${sessionScope.teachername}/>
<input type="submit" id="backSelect" value="退选"/>
</form>
我要判断是否确定退选才发送请求到back.action中处理。
Jquery如下:
jQuery(‘#backSelect‘).click(function(){
var date=new Date();
var a = new Date("06/21/2015 12:00");
var b = new Date("06/23/2015 12:00");
if(date>=a&&date<=b){
jConfirm(‘您确定要退选吗?‘,‘确认框‘,function(r){
var message = r == true ? ‘是‘ : ‘不是‘;
if(r==true){
jQuery(‘#form‘).submit(); // 这个控制发送提交请求
}else{
jAlert(‘请您填写拟题表‘);
}
});
}else{
jAlert("时间已过,您不能退选了");
}
});
------------------------------以上是不能够解决问题的,当你点击的时候,都会发送submit请求,这大概就是submit和button的区别吧--------------------
2.可以通过下面这篇文章来学习下jquery如何提交表单
(2) 编写以下代码,这段代码将创建一个表单,其中包含一个input按钮(而不是submit按钮)。添加一些将在单击该按钮时触发并提交该表单的jQuery代码。
<form id="form" action="back.action" method="get"> <input type="text" id="backSelect" value=${sessionScope.teachername}/> <input type="submit" id="backSelect" value="退选"/> </form> --------------------------jquery---------------------------- jQuery(‘#backSelect‘).click(function(){ var date=new Date(); var a = new Date("06/21/2015 12:00"); var b = new Date("06/23/2015 12:00"); if(date>=a&&date<=b){ jConfirm(‘您确定要退选吗?‘,‘确认框‘,function(r){ var message = r == true ? ‘是‘ : ‘不是‘; if(r==true){ jQuery(‘#form‘).submit(); // 这个控制发送提交请求 }else{ jAlert(‘请您填写拟题表‘); } }); }else{ jAlert("时间已过,您不能退选了"); } }); //只需要将form里面的type改成button就可以轻松解决问题,控制当你判断确定是才发送请求,这样可以做到动态发送请求-
1.5.3 原理
在本例中,向input按钮附加click事件处理函数。该事件处理函数将在单击按钮时执行。单击按钮时,将在表单上调用jQuery的submit()方法,这将提交该表单。所有浏览器都有一个原生的提交方法,用于以编程方式提交表单。jQuery将此功能包装到了它自己的submit()方法中。
1.5.4 更多信息
控制表单提交
如果表单有一个submit按钮,那么我们可以控制是否提交该表单。在本例中,必须向表单附加事件处理函数,此事件处理函数将在单击特定表单上的submit按钮时执行。
$(‘#Form‘).submit(function() { return false; });
上述代码将在单击ID为Form的表单上的submit按钮时执行。如果处理函数返回false,不会提交表单。这对验证表单非常方便。验证表单值的代码可以放在处理函数中。如果表单值通过验证,返回true,提交表单。验证失败时,返回false,则不允许提交表单。
另一个选项是使用preventDefault()。由名称可以看出,preventDefault()会阻止执行默认事件。它是event对象的一个属
$(‘#Form‘).submit(function(event) { event.preventDefault() });