-
jquery ajaxt提交在firefox,chrome下遇到的问题10
var str = $('#f1').formSerialize();
$.ajax({
type:'post',
url:'actionHRDemand.php',
data:str,
dataType:'json',
error:function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status+","+XMLHttpRequest.readyState+","+textStatus+","+errorThrown);
},
success:function(result){
if(result['num']==1){
jQuery("#jqgrid").trigger("reloadGrid")
}else{
alert('操作失敗');
}
}
});以上代码在IE6.0中无问题,在firefox,chrome中,无法提交,页面重新加载了.用firebug调试可以看到str数据post到了当前页面,后台保存
失败.也就是说没有请求url:'actionHRDemand.php',而是请求的自身页面.百思不得其解.后尝试将async:false,数据可以提交后台保存,
但是当前页面任然重新加载.
我的form是这样的:<form name="f1" id="f1" action="" method="post" enctype="application/x-www-form-urlencoded">
如果在action中写入'actionHRDemand.php,页面则会跳转到'actionHRDemand.php页面.
我在当前页面中还使用了jqgrid插件,在加载时请求数据,是没有问题的但是执行以下代码:
//查询
function query(){
var accountid = $("#accountid").val();
var departid = $("#departid").val();
var proposerid = $('#proposerid').val();
var demandtime = $('#demandtime').val();
var position = $('#position').val();
var howmany = $('#howmany').val();
var matter = $('#matter').val();
if(isNaN(howmany)){
alert("請輸入正確的需求人數");
return;
}
$("#jqgrid").jqGrid('setGridParam',{
url:'actionHRDemand.php?op=grid', postData:{'accountid':accountid,'departid':departid,'proposerid':proposerid,'demandtime':demandtime,'position':position,'howmany':howmany,'matter':matter},
page:1
}).trigger("reloadGrid");
}
发生了同上面一样的问题,页面重载了.
似乎$(function(){});以外的ajax请求全都出问题了.
这个问题已经困扰了我好久,特地发出来请广大网友指点.
问题补充:谢谢各位,有两位朋友提到触发事件的按钮的问题,给我提供了思路,现问题已经解决.
做一下分享.
我原本的写法如下:
$("button" ).button();
<button id="" onclick="savedata();">確認</button>
<button id="" onclick="$('#f1').resetForm();">重置</button>
<button id="" onclick="query();">搜索</button>
无论如何在firefox下,chrome下都不可以,修改后如下:
$("input:button" ).button();
<input type="button" id="" onclick="savedata();" value="確認" />
<input type="button" id="" onclick="$('#f1').resetForm();" value="重置"/>
<input type="button" id="" onclick="query();" value="搜索"/>
问题解决了.
因为我对jquery的了解只限于使用,我将出现这个问题的思考了一遍后,发现了问题所在:
1.firefox,chrome两个浏览器,是否将<button></button>视同<input type="submit">?
2.firefox,chrome将form内的button视为submit?
3.jquery的$("button" ).button();只是用来美化按钮,还是同时改变了button的type?我想这个可能性比较小.
分析下来,如果button被firefox,chrome视为submit,就可以合理解释出现的问题了.
button的onclick事件和submit同时触发,ajax发出请求后(默认异步提交),submit事件终止了ajax的请求,因此,在chrome的开发人员工具里面可以看到这一奇怪的现象,status是cancled,type是pending(正常应该是text/html或其他).这也是为什么我之前说,把ajax设为同步提交(async:false)时,数据提交后执行正确,但还会重载页面的问题.因为同步提交时,会锁定浏览器的其他操作,待完成后,才会执行submit事件.
虽然说的比较乱,但是到这里,大家应该都明白了.
解决的方法就是我上面所写的,把button改为input.
还有一个方法,就是阻止submit事件,可以这样做:
$(function(){
$("form").bind("submit", function() { return false; }); //阻止提交
})
此方法未经验证,只是一点想法.
有两位帮忙分析的朋友都提到了按钮事件的关键点,给我提供了思路,在此表示感谢!
问题补充:再补充,xingkongxieyang 朋友提到将button放到form之外,我没有试过,但是应该是可以的.我之前都是放在form之内的.此问题重点应该是firefox和chrome,IE之间对form内button事件的不同的问题,在此提醒大家注意.2012年9月12日 11:17
相关推荐
但在某些情况下,尤其是在Chrome浏览器中,可能遇到`$(document).ready()`提前执行的问题,这可能是由于浏览器的优化策略导致的。 为了解决这个问题,我们可以采用以下几种策略: 1. **使用`window.onload`**:`...
标题中的“jQuery控件简易日历表格代码兼容firefox、chrome、ie.zip”指出,这个压缩包提供了一个使用jQuery实现的日历表格插件,该插件能够无缝地在Firefox、Chrome和Internet Explorer(IE)这三大主流浏览器上...
标题“fireFox.fireDebug.jQuery”暗示了我们讨论的核心是关于使用Firefox浏览器的特定版本(25.01)以及两个关键的开发工具:fireDebug和jQuery。在本文中,我们将深入探讨这两个工具,以及它们如何协同工作以优化...
本文将深入探讨“jQuery异步提交form表单”这一主题,结合给出的标签“源码”和“工具”,我们将分析相关源码,并提供实际应用中的指导。 在传统的HTML表单提交过程中,页面会跳转到服务器返回的结果页面,这在用户...
明锋工作室整理常用资料。本次资料是一个自动居中插件,只要设定div长度和高度,其中的图片会自动铺满容器并且自动居中。...并且该自动居中插件支持IE6、IE7、IE8、IE9、IE10、CHROME、FIREFOX、OPERA。
在Web开发中,异步表单提交是一种常见需求,它能提供更好的用户体验,因为用户无需等待页面刷新即可完成数据的提交。jQuery.form插件正是为了满足这种需求而设计的,它扩展了jQuery库,使表单异步提交变得更加简单、...
JQuery表单提交和后台交互源码 源码描述: jQuery表单提交和后台交互,非常简单。 也许你习惯了使用基于jQuery的表单插件,裸写也不错 仅使用jQuery提交表单和后台交互,不使用基于jQuery的表单插件 方式1、取到...
如果表单提交的目标URL与当前页面不在同一个域下,可能存在跨域问题。这时需要服务器端支持CORS(跨源资源共享)或者使用JSONP(JSON with Padding)等技术。 总结,使用jQuery的Ajax功能提交整个表单涉及的关键点...
在本主题中,我们关注的是jQuery幻灯片效果在Firefox浏览器中的应用,特别是在Firefox附加组件中心的风格。这种图片切换功能是网页设计中常用的一种元素,能够为用户提供流畅、动态的浏览体验。 首先,jQuery幻灯片...
《jQuery load()方法在Firefox下的显示异常及其解决策略》 在Web开发中,jQuery的load()函数被广泛用于异步加载HTML内容到指定元素中,极大地提升了用户体验。然而,有时在Firefox浏览器中,load()可能会遇到显示不...
jquery file上传预览本地图片支持IE6\7\8\9\10 chrome 火狐 网上有很多关于 file上传预览本地图片开源角本但都对支持到IE6\7\8,而且chrome 火狐最新版本也有问题,自己动手丰衣足食。分享给给大家。
"JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)"是一个专门为JavaScript环境设计的,旨在解决跨浏览器兼容性问题的日期选择工具。这个组件的目标是确保在不同浏览器如Internet Explorer(IE)、Firefox、...
本文将详细讲解如何使用jQuery在Firefox浏览器中调整文本的大小,同时结合提供的源代码进行分析。 首先,我们需要理解jQuery的核心概念。jQuery通过选择器找到DOM元素,然后对这些元素进行操作。在调整字体大小的...
在网页开发中,确保图片在不同的浏览器上,如Internet Explorer(IE)、Firefox和Chrome中能够正确缩放是一项重要任务。由于各个浏览器对CSS、JavaScript等技术的实现可能存在差异,因此需要采用兼容性处理来实现这...
标题“Firefox显示不正常”可能指的是在使用Mozilla Firefox浏览器浏览网页时遇到了布局、样式或功能显示异常的问题。这种问题可能是由于多种原因引起的,包括但不限于CSS兼容性问题、浏览器插件冲突、JavaScript...
本方案用于规范东信EST系列身份证阅读器谷歌Chrome火狐Firefox插件,支持的型号有:EST-100、EST-100GS、EST-100U、EST-200G、EST-J13X、EST-100G等。 本方案无缝支持最新版本谷歌Chrome火狐Firefox等网页浏览器,...
在前端开发中,有时我们需要将JSON格式的数据转换成表单(form)的格式进行提交,以便于服务器端处理。在JavaScript的世界里,jQuery库提供了一种便捷的方式来进行这样的转换。本篇文章将深入探讨如何利用jQuery从...
在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计和Ajax交互。本资源重点展示了如何利用jQuery来实现弹窗表单的填写和提交功能,这对于用户交互和数据...
描述中提到的"修改后版本存在BUG",暗示了原始的日期控件代码在Firefox上可能遇到了功能异常或视觉问题。为了解决这些问题,开发者通常需要深入理解Firefox和其他浏览器之间的差异,尤其是在处理DOM操作、事件处理...
在Firefox浏览器中使用jQuery AutoComplete,可能会遇到一些特定的问题,因为不同的浏览器对某些JavaScript特性可能有不同的实现或支持。这篇博客(链接已提供)可能详细讨论了在Firefox中实现jQuery AutoComplete时...