在Javascript中设置元素值
我有以下要素:在Javascript中设置元素值,javascript,html,Javascript,Html,我有以下要素: <input type="text" value="" tabindex="1" size="15" onblur="UpCaseSearch(this)" name="name"> 然而,我有两个问题: 当我在页面上查看该元素时,我看到value属性仍然是空的“。为什么呢?我在该领域看到的实际文本来自哪里 如果我尝试下面的命令,它将实际设置值,但该字段仍然为空: window.frames[1]。document.getElementsByName('name')
<input type="text" value="" tabindex="1" size="15" onblur="UpCaseSearch(this)" name="name">
然而,我有两个问题:
value
属性仍然是空的“
。为什么呢?我在该领域看到的实际文本来自哪里值
,但该字段仍然为空:
window.frames[1]。document.getElementsByName('name')[2]。setAttribute('value','test'))所以看起来这两种情况下的值不一样。是吗?简而言之,源代码(和dom)中的
值属性充当“defaultValue”
例如,想象一下这个输入字段(这是使用此功能的常用方法):
换句话说,要在html标记(
)中设置默认值,并从javascript中设置值属性(使用以下方法:var val=elm.getAttribute('value')
和elm.setAttribute('value',val)
这也是为什么(如您所见)这些属性会传播到元素的outerHTML
(以及元素的父级innerHTML
)
但是,要获取/设置元素的当前值属性,请使用:var val=elm.value
和elm.value=val
旁注:textarea
:您可以在textarea
上使用.defaultValue
检索它的textContent
(但您可以通过设置它的innerHTML
)来覆盖/更改它,同时使用elm.value
获取/设置当前值
希望这有帮助!试试这个:
window.frames[1].document.getElementsByName('srchsnam')[2].value = "Test"
让我知道它是否有效!你读过这个问题吗?它显示他成功地设置了value属性,但在textfield中看不到这些值。这不是他的问题吗?@Vohuman这可能是我的错,因为我不小心将同一行的不同值作为类名发布。我后来修复了它,但这个答案是pri给出的或者更进一步。
<input type="text"
value="your name here"
onfocus="if (this.value===this.defaultValue) this.value='';"
onblur="if (this.value==='') this.value=this.defaultValue;" >
window.frames[1].document.getElementsByName('srchsnam')[2].value = "Test"