我想要input type="text"
转换为input type="button"
。我尝试了attr()
,但does not work:
HTML:
<input type="text"></input>
JavaScript的:
$('input').attr('type', 'button');
怎么了?
答案 0 :(得分:6)
您无法使用jQuery更改type
属性。这是来自jQuery source:
// We can't allow the type property to be changed (since it causes problems in IE)
if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
jQuery.error( "type property can't be changed" );
}
根据评论,原因是它在IE中引起问题。由于jQuery旨在减少由于浏览器之间的差异而引起的复杂性,如果它在其他浏览器中工作,则会违背该想法。我假设这就是为什么jQuery团队只是删除了这种能力。
正如已经提到的,您最好的选择可能是用新的元素替换有问题的input
元素。
答案 1 :(得分:0)
这部分涵盖在the documentation:
中注意: Internet Explorer不允许您更改类型
<input>
或<button>
元素的属性。
您甚至无法在任何浏览器中尝试此操作来自jQuery源:
// We can't allow the type property to be changed (since it causes problems in IE)
if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
throw "type property can't be changed";
(看起来文档需要更新。)