无法使用 Javascript 更改 <button> 的“类型”
Posted
技术标签:
【中文标题】无法使用 Javascript 更改 <button> 的“类型”【英文标题】:Can't change <button>'s "type" with Javascript 【发布时间】:2011-05-09 09:44:09 【问题描述】:在 Chromium 7.0.517.44 (64615) Ubuntu 10.10 上,我似乎无法更改 type
元素的 type
属性:
> blah = document.createElement("button")
<button></button>
> blah.type
"submit"
> blah.type = "button"
"button"
> blah.type
"submit"
帮助?
在 Firefox 3.6.12 和 Opera 10.63 上,它运行良好:
>>> blah = document.createElement("button")
<button>
>>> blah.type
"submit"
>>> blah.type = "button"
"button"
>>> blah.type
"button"
【问题讨论】:
我不相信你应该能够。 Firefox 和 Opera 让你,Chrome 不会,但我认为 IE 会崩溃。我知道它适用于<input/>
,所以我认为 <button>
不会有任何不同。
@Robert:您应该能够在使用脚本 (createElement
) 动态创建新元素时设置 type
属性 - 就像上面的情况一样。设置 type
属性已在 Chrome 和 IE9 中修复,但 IE8 和更早版本“内爆”。 setAttribute
解决了这个问题(如接受的答案中所述)。
【参考方案1】:
================================================ ========================
javascript:
function submit_button()
var btn=document.getElementById(button_id');
btn.setAttribute('type', 'submit');
================================================ ========================
jQuery:
function submit_button()
$('#' + button_id).prop('type', 'submit');
================================================ ========================
here it works.....
【讨论】:
【参考方案2】:更改任何输入系列的type
属性通常不起作用(我知道事实上它不适用于input
)。
您可能想要做的是克隆元素,在 html 被序列化时替换 type
属性,然后在之后附加它。然后删除原来的。
【讨论】:
【参考方案3】:使用setAttribute
。
blah.setAttribute('type', 'button');
【讨论】:
Error: type property can't be changed
以上是关于无法使用 Javascript 更改 <button> 的“类型”的主要内容,如果未能解决你的问题,请参考以下文章
javascript 使用Google Analytics和BU GA跟踪器跟踪下载情况
如何使用 JavaScript 更改 embed src 的值?