valuetype : 'valueType',\r
checked : 'defaultChecked'\r
},\r
+ \r
+ HAS_VALUE : {\r
+ INPUT : true,\r
+ TEXTAREA : true,\r
+ SELECT : true\r
+ },\r
+ \r
renameForTag : {},\r
// http://nanto.asablo.jp/blog/2005/10/29/123294\r
// checked -> defaultChecked\r
// 先頭にスペース\r
objToAttrText : function( obj ){\r
var noValue = X.Dom.Attr.noValue,\r
- attrs = [ '' ], n = 0, p;\r
+ attrs = [ '' ], n = 0, p, v;\r
for( p in obj ){\r
- attrs[ ++n ] = noValue[ p ] ? p : [ p, '="', obj[ p ], '"' ].join( '' );\r
+ v = obj[ p ];\r
+ if( p === 'value' ){\r
+ v = v.split( '"' ).join( '"' ).split( '>' ).join( '>' ).split( '<' ).join( '<' );\r
+ };\r
+ attrs[ ++n ] = noValue[ p ] ? p : [ p, '="', v, '"' ].join( '' );\r
};\r
return 0 < n ? attrs.join( ' ' ) : '';\r
}\r
* \r
*/\r
X.Dom.Node.prototype.attr = function( nameOrObj /* v */ ){\r
- var attrs = this._attrs, newAttrs, f;\r
+ var attrs = this._attrs, newAttrs, f, p, elm;\r
\r
if( this._xnodeType !== 1 ) return this;\r
\r
};\r
return this;\r
} else\r
+ if( nameOrObj === 'value' && X.Dom.Attr.HAS_VALUE[ this._tag.toUpperCase() ] ){\r
+ if( this._newAttrs && this._newAttrs.value ) return this._newAttrs.value;\r
+ if( elm = X.Dom.DOM_IE4 ? this._rawNode || this._ie4getRawNode() : this._rawNode ){\r
+ attrs.value = elm.value;\r
+ };\r
+ return attrs.value;\r
+ } else\r
if( typeof nameOrObj === 'string' && attrs ){\r
// getter\r
return attrs[ nameOrObj ];\r
X.Dom.Node.prototype._setAttr = function( attrs, newAttrs, name, v ){\r
if( name === 'UID' ) return;\r
if( name === 'id' ){\r
- v = v !== 'ie4uid' + this._uid ? v : undefined;\r
+ v = ( v !== 'ie4uid' + this._uid ) ? v : undefined;\r
if( v !== this._id ){\r
this._id = v;\r
this._dirty |= X.Dom.Dirty.ID;\r