今天遇到一个诡异的bug,简单描述一下是这样的:一个jsp页面在chrome等其它浏览器中表现一切正常,但是在IE浏览器下(我这里是IE9,其它版本也有问题)form表单会被提交两次。
<script src="js/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
/** 检查当前值是否为空 */
function isNullValue(value) {
if (value == null || $.trim(value).length == 0) {
return true;
}
return false;
};
$(function(){
$("#searchbtn").click(
function(){
if(isNullValue($("#queryType").val())){
alert("请选择查询类型");
}else if(isNullValue($("#start").val()) || isNullValue($("#end").val())){
alert("请选择查询日期");
}else{
var formName = document.getElementById("searchForm");
formName.action = "dataList.jsp?random=<%=random%>";
formName.submit();
}
});
}
);
</script>
//form表单
搞了一个上午,后来参考了这个帖子 http://blog.csdn.net/tudopi/article/details/5577562
在formName.submit(); 后面加了一句return false; 秒杀。
更改后:
$(function(){
$("#searchbtn").click(
function(){
if(isNullValue($("#queryType").val())){
alert("请选择查询类型");
}else if(isNullValue($("#start").val()) || isNullValue($("#end").val())){
alert("请选择查询日期");
}else{
var formName = document.getElementById("searchForm");
formName.action = "dataList.jsp?random=<%=random%>";
formName.submit();
return false; //解决IE兼容性问题,不加这句的话,IE下表单会被提交两次。
}
}
);
}
);
我也没看懂是怎么解决的 -_-||,有哪位高人能解释一下么?