我有以下元素:
<input type="text" value="" tabindex="1" size="15" onblur="UpCaseSearch(this)" name="name">
这是空文本字段。
我想将文本设置到该字段中,我可以使用类似的命令成功地执行此操作(当我说成功时,我的意思是我可以看到填充了文本test
的字段:
window.frames[1].document.getElementsByName('name')[2].value = "test"
但我有两个问题:
value
属性仍为空""
。这是为什么?我在该领域可以看到的实际文本来自哪里?如果我尝试以下命令,它实际上会设置value
,但该字段仍为空:
window.frames [1] .document.getElementsByName(&#39; name&#39;)[2] .setAttribute(&#39; value&#39;,&#39; test&#39;)
所以在这两种情况下,它看起来都不一样。是吗?
答案 0 :(得分:0)
简而言之,源代码(和dom)中的value
属性用作&#39; defaultValue&#39;。
对于示例,想象一下这个输入字段(这是使用此功能的常用方法):
<input type="text"
value="your name here"
onfocus="if (this.value===this.defaultValue) this.value='';"
onblur="if (this.value==='') this.value=this.defaultValue;" >
换句话说,要在html-markup(<input value="your_value" type="text">
)中设置默认值,并从javascript设置值 - 属性(使用方法 :var val=elm.getAttribute('value')
和elm.setAttribute('value', val)
。
这也是为什么(如你所见)这些属性传播到元素的outerHTML
(以及元素的父innerHTML
)。 < / p>
但是,要获取/设置元素当前值属性,请使用:var val=elm.value
和elm.value=val
。
旁注:textarea
几乎相同:您可以.defaultValue
使用textarea
来检索它textContent
(但您可以&#39;} d使用innerHTML
获取/设置当前值时,通过设置elm.value
)来覆盖/更改它。
希望这有帮助!
答案 1 :(得分:0)
试试这个:
window.frames[1].document.getElementsByName('srchsnam')[2].value = "Test"
让我知道它是否有效!