日期:2014-05-16  浏览次数:20418 次

jquery.form.js 遇到的奇怪问题

我的这个jquery.form.js不知道是哪个版本的

觉得很奇怪,以前用的好好的,js没改过

用Firefox测试正常通过,IE提示缺少对象

利用IE开发者工具测试了下发现代码行数512行报错

var v = $.browser.msie && !(op.attributes['value'].specified) ? op.text : op.value;

看来这句代码挡住了: op.attributes['value'] == undefined

?

初步估计是ie下select元素的option没有指定value造成的, 生产环境下这个select下只有这一个元素,我页面也有一部分是struts2的select标签,没有问题。

然后我发现我有这么几句代码:

<select style="width: 138px" name="project.isvalid"
id="project.isvalid" role="p_base_info.vc_isvalid">
<option ></option>
<option value="1">

</option>
<option value="0">

</option>
</select>

我的第一个选项是无值的

找了下,原来新的版本已经解决这个问题了

* version: 2.43 (12-MAR-2010)

if (!v) // extra pain for IE...
v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;

不过我自己没有更新js版本

解决方案是将<option ></option>修改为:<option value=""></option>