Javascript更改所有输入的文本

时间:2013-04-11 12:11:14

标签: javascript html input replace getelementsbytagname

我是Web开发的新手,我正在尝试使用Javascript更改某些输入的文本。这是我的代码必须做的一个例子

<!DOCTYPE html>
<html>
<body>

<p>Click the button to replace "R$" with "" in the field below:</p>

<input id="demo" value="R$ 1223,43"></input>
<input id="demo1" value="R$ 134523,67"></input>
<input id="demo2" value="R$ 12453,41"></input>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
var x=document.getElementByTagName("input")

for(var i = 0; i < x.length; i++) {

  var str=x[i].innerHTML; 

  var n=str.replace(",",".");
  var n1 = n.replace("R$ ","");

  document.getElementById("demo").innerHTML=n1;
 }


}
</script>

</body>
</html>

所以,我想撤销“R $”并将“,”改为“。”对于一些数学运算。我必须使用代码中的所有输入执行此操作。

4 个答案:

答案 0 :(得分:1)

你几乎就在那里,取而代之的是让它看起来像这样:

function myFunction() {
    var x = document.getElementsByTagName("input"); // ; was missing and you used getElementByTagName instead of getElementsByTagName

    for (var i = 0; i < x.length; i++) {

        var str = x[i].value; // use .value

        var n = str.replace(",", ".");
        var n1 = n.replace("R$ ", "");

        //document.getElementById("demo").innerHTML=n1; // use x[i] again instead
        x[i].value = n1; // and again use .value
    }
}

DEMO - 运行更新的代码


答案 1 :(得分:0)

这些是必需的步骤 - 至少步骤1到3

  1. 将脚本移动到它所属的头部
  2. 将getElementByTagName更改为getElementsByTagName,复数
  3. 获取并更改x [i] .value
  4. 链接替换
  5. DEMO

    <!DOCTYPE html>
    <html>
    <head>
    <title>Replace example</title>
    <script>
    function myFunction() {
      var x=document.getElementsByTagName("input"); // plural
    
      for(var i = 0; i < x.length; i++) {
        var str=x[i].value; 
        x[i].value=str.replace(",",".").replace("R$ ","");
      }
     }
    </script>
    </head>
    
    <body>
    
    <p>Click the button to replace "R$" with "" in the field below:</p>
    
    <input id="demo" value="R$ 1223,43"></input>
    <input id="demo1" value="R$ 134523,67"></input>
    <input id="demo2" value="R$ 12453,41"></input>
    
    <button onclick="myFunction()">Try it</button>
    
    
    </body>
    </html>
    

答案 2 :(得分:0)

首先,使用.value而不是.innerHTML。 .innerHTML在标记的打开和关闭中引用文本。

其次,更正var x = document.getElementByTagName(“input”)的拼写 它应该是getElementsByTagName

答案 3 :(得分:0)

这个功能应该做你想要的:

function myFunction()
{
    var eles=document.getElementsByTagName("input");

    for(var i = 0; i < eles.length; i++) 
    {
        if(eles[i].type != 'text') continue; // inputs that aren't of type text dont make sense here
        var str = eles[i].value; 
        str=str.replace(",",".");
        str=str.replace("R$ ","");
        eles[i].value=str;
    }
}