首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Jquery的val()函数在IE上产生的null的处理

2012-10-30 
Jquery的val()函数在IE下产生的null的处理今天在Ie下测试Jquery代码,发现在编辑填充默认值时,如果为空的字

Jquery的val()函数在IE下产生的null的处理

今天在Ie下测试Jquery代码,发现在编辑填充默认值时,如果为空的字段全部显示null,但在FF和chrome下正常

?

?

${"#input"}.val(null);

?

?

开始在想是不是都要加上 !=null 的判断,但是总觉得代码量太大,很不舒服

?

于是查看了Jquery的源文件

?

val: function( value ) {if ( value === undefined ) {var elem = this[0];if ( elem ) {if ( jQuery.nodeName( elem, "option" ) ) {return (elem.attributes.value || {}).specified ? elem.value : elem.text;}// We need to handle select boxes specialif ( jQuery.nodeName( elem, "select" ) ) {var index = elem.selectedIndex,values = [],options = elem.options,one = elem.type === "select-one";// Nothing was selectedif ( index < 0 ) {return null;}// Loop through all the selected optionsfor ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {var option = options[ i ];if ( option.selected ) {// Get the specifc value for the optionvalue = jQuery(option).val();// We don't need an array for one selectsif ( one ) {return value;}// Multi-Selects return an arrayvalues.push( value );}}return values;}// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specifiedif ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {return elem.getAttribute("value") === null ? "on" : elem.value;}// Everything else, we just grab the valuereturn (elem.value || "").replace(rreturn, "");}return undefined;}var isFunction = jQuery.isFunction(value);return this.each(function(i) {var self = jQuery(this), val = value;if ( this.nodeType !== 1 ) {return;}if ( isFunction ) {val = value.call(this, i, self.val());}// Typecast each time if the value is a Function and the appended// value is therefore different each time.if ( typeof val === "number" ) {val += "";}if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {this.checked = jQuery.inArray( self.val(), val ) >= 0;} else if ( jQuery.nodeName( this, "select" ) ) {var values = jQuery.makeArray(val);jQuery( "option", this ).each(function() {this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;});if ( !values.length ) {this.selectedIndex = -1;}} else {this.value = val;}});

?

这是val函数的实现

修改最后一句,将

?

??this.value = val;

?

改成

?

???this.value = val|| "";

?

就可以了

热点排行