关于JQuery的serialize方法.让我崩溃一天的问题解决了

news/2024/7/7 7:34:21
  这几天做一个Ajax像服务器动态提交的表单然后给出即时反馈.这些表单内容都是一系列的.内容大同小异.所以代码和页面结构也是大同小异.但是其中有一个页面使用AJAX始终无法提取到服务器值.反而将此页的整个render出来的页面显示出来.关键代码如下:

 

Code
后台代码简略如下.只是为了让大家明白意思:

 

Code
 

刚开始我挺奇怪.为什么几个页面都好好的.但是这个页面无论如何也无法收到queryString的值,我干脆将jquery代码重写了一遍.问题依旧.

后来发现在IE里不行.但是在FF里却没事..

用IE的httpwatch插件观察.发现表单无法提取到值.百思不得其解.以为是JQuery库的问题.换了.问题依旧.

上了asp.net的论坛和jquery论坛发邮件.有人说是utf-8编码问题.试了.还是无效-.-!!

最终我只能用“滚雷"的方法,看为什么其他页面行而这个不行.把一个个的html控件挨个删除.然后用httpwatch观察值,最终发现在

 

Code
 

这个html控件上出了问题.如果页面里有这个控件serialize方法就无法提取任何值.

恩.对了.你们也肯定想到了.length是js数组的属性关键字.肯定冲突了.

打开js代码,发现原来serialize是用param方法对serializeArray的一个简单包装.

param方法的js代码:

Code
 

serializeArray方法的jquery定义

 

Code
 

发现问题都不出在这两个函数上.继续跟踪..发现问题出在这serializeArray方法里调用的makeArray方法上

JQuery定义如下

Code
 

自习看makeArray的代码.发现这行

var i = array.length;
问题就处在这

因为变量i是取传入的array数组的长度.

而我们知道.js中的array本质上就是一个对象.所以array["length"]和array.length是同一种东西

所以当我将textbox中的id设置为length时.这时就会和对象的length属性重名.造成变量I在下面的计算中出错.自然就返回空了.

解决方法:将textbox的ID换成其他的值

-----------------------------------------------------------

写在后面:这个问题让我快用头撞墙了.刚开始还以为是灵异现象.重启动了好几次-.-!!

分享一下.希望对大家有帮助.




本文转自CareySon博客园博客,原文链接:http://www.cnblogs.com/CareySon/archive/2009/06/26/1511965.html如需转载请自行联系原作者


http://www.niftyadmin.cn/n/3091683.html

相关文章

python二分法代码_Python实现二分法检索(binary search)

二分法检索(binary search)又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组(array)中。 首先将给定值key与字典中间位置上元素的关键码(key)比较,如果相等,则检索成…

JAVA NIO buffer (知识三)

java nio 里的buffer是缓存数据,通常缓冲区是一个数组,字节数组,也可以是别的类型。最常用的就是bytebuffer, 还有一些其它的类型: charbuffer, shortbuffer, intbuffer, longbuffer, floatbuffer, doubleb…

python语言可以处理数据文件吗_对于Python语言进行处理文件解读

如何在Python语言中复制和删除文件,以及怎样将一个完整的文件路径分解成目录部分和文件名部分,***,我们讲解目录的创建,以及如何在目录树中移动目录并处理文件。 对于文件和目录的处理,虽然可以通过操作系统命令来完成…

java内存区域与对象的访问

我们都知道,在学习java的时候,有一个东西是特别重要的,那就是java内存的划分,以及对象的访问是如何进行的,下面是我自己在一些书籍上整理的,学完了之后感觉特别有用!!! …

mysql5.6.20配置文件my.cnf参数详解

服务器为硬件dell-R710,硬盘为双SSD硬盘130G,服务器有两颗CPU,单颗cpu为12核,服务器在安装系统时CPU开启了超线程。逻辑cpu为48核。 此服务器为单纯的mysql服务器,此配置文件的参数主要是供笔者平时优化my.cnf作为参考。广大读者切…

java多线程中的等待唤醒机制--多生产者多消费者问题

在java多线程中,等待唤醒机制是最经典的也是最能够体现java多线程中的线程安全的问题,在写等待唤醒机制的时候,我们要先去了解什么是等待唤醒机制 等待唤醒机制就是指在多个线程进行并发的去操作同一个资源的问题, 以生产馒头和…

python作业代做_代做MATH 6141作业、代写Python课程设计作业、代做algorithms作业、代做Python编程作业...

代做MATH 6141作业、代写Python课程设计作业、代做algorithms作业、代做Python编程作业 日期:2018-12-05 11:11 Coursework 2: MATH 3018/MATH 6141 - Numerical methods Due: 13 December 2018 In this coursework you will implement given numerical algorithms.…

偏门套路:每天被动吸引150+精准淘宝粉

网上关于引流技巧的文章五花八门,看得你热血澎湃,但往往搞一两天大多数人就放弃了,甚至看完后根本没去操作。最后还抱怨:为什么我看了那么多东西还是赚不到钱!虽然我十分鄙视这种浮躁的心态,但也能够理解和体谅大家。因…