在Javascript中设置元素值

时间:2014-11-13 05:00:31

标签: javascript html

我有以下元素:

<input type="text" value="" tabindex="1" size="15" onblur="UpCaseSearch(this)" name="name">

这是文本字段。

我想将文本设置到该字段中,我可以使用类似的命令成功地执行此操作(当我说成功时,我的意思是我可以看到填充了文本test的字段:

window.frames[1].document.getElementsByName('name')[2].value = "test"

但我有两个问题:

  1. 当我在页面上查看该元素时,我发现value属性仍为空""。这是为什么?我在该领域可以看到的实际文本来自哪里?
  2. 如果我尝试以下命令,它实际上会设置value,但该字段仍为空:

    window.frames [1] .document.getElementsByName(&#39; name&#39;)[2] .setAttribute(&#39; value&#39;,&#39; test&#39;)

  3. 所以在这两种情况下,它看起来都不一样。是吗?

2 个答案:

答案 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.valueelm.value=val

旁注:textarea几乎相同:您可以.defaultValue使用textarea来检索它textContent(但您可以&#39;} d使用innerHTML获取/设置当前值时,通过设置elm.value)来覆盖/更改它。

希望这有帮助!

答案 1 :(得分:0)

试试这个:

window.frames[1].document.getElementsByName('srchsnam')[2].value = "Test"

让我知道它是否有效!