2013-04-11 94 views
2

我真的很新鲜的Web开发,我试图用Javascript来改变一些输入的文本。这里是我的代码必须做的一个例子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 $”并将“,”替换为“。”。对于一些数学运算。我必须在我的代码中完成所有输入。

+3

.value的,没有.innerHTML - 我强烈建议通过http://w3fools.com [MDN](https://developer.mozilla.org/) – mplungjan 2013-04-11 12:12:13

回答

0

这些是需要的以下步骤: - 至少在步骤1到3

  1. 移动的脚本它所属
  2. 改变getElementByTagName到的getElementsByTagName头部,多个
  3. 得到和变更X [i]于.value的
  4. 链替换

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> 
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 - 运行更新的代码


+0

像魅力一样工作。非常感谢 – 2013-04-11 12:17:58

0

首先所有,使用.value而不是.innerHTML。 .innerHTML会在标签的打开和关闭中对文本进行回复。

其次,纠正拼写的变种X = document.getElementByTagName( “输入”) 应该的getElementsByTagName

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; 
    } 
}