当点击按钮时,我该如何更改此输入框的值?

3
我正在尝试编写一个程序,其中包含多个文本框和 1 个按钮。当用户单击按钮时,文本框的值更改为 how are you。 我不确定如何引用表达式 document.getElementById('text'+i).value= 'how are you' 中的值 i
 <input name="text1" type="text" id="text1" value="textbox 1"                 
 onFocus="this.style.background ='yellow'" onBlur="this.style.background='white'">
 <input name="text2" type="text" id="text2" value="textbox 2"                             
 onFocus="this.style.background = 'yellow'" onBlur="this.style.background='white'">

function popup() {
    for( int i; i <2, i++) {      
      document.getElementById('text'+i).value= 'how are you'      
    }
}  

<input type="button" value="Click Me!" onclick="popup()"><br />

我已经修改了for循环部分,但仍然无法正常工作:
function popup() {
    for( var i = 1, i <= 2, i++) {
      document.getElementById('text'+i).value= 'how are you'
    }
}

这个程序能否像C++中的foreach循环一样工作?首先它将计算您拥有的文本框数量,然后创建一个列表,该列表从1到文本框的总数,然后编写for循环来计数文本框。

4个回答

4
for(var i = 1; i <=2; i++) {
    document.getElementById('text'+i).value= 'how are you'      
}

澄清:

  • 你需要将i初始化为1
  • 你需要将循环条件改为i<=2

JavaScript是一种动态类型语言,因此变量声明中没有类型。

@esailija指出的错误:

  • i未初始化为数字。
  • ,应该用;代替。
  • int i应该写成var i
  • 误差为一。

1

使用 var 关键字在 JS 中声明变量。不要忘记加上分号。

function popup() 
{  
  for(var i=1; i <= 2; i++) {     
    document.getElementById('text'+i).value = 'how are you';        
  }  
} 

1

为了简单起见,我指出一个只有两次迭代和一个循环内代码行的for循环是一种浪费打字的方式。你也可以这样做:

var str = 'how are you';
document.getElementById('text1').value = str;   
document.getElementById('text2').value = str;   

1
是的,没错。我忘了提到它应该适用于多个文本框。所以如果你有5或6个文本框... - user1296160

0
  • 在javascript中,var用于声明变量
  • 变量应该在for循环中初始化
  • for循环的条件应该正确,以确保它循环正确的次数。< 2会使它停在1。

据我理解,您希望i变量也显示在您的文本中。只需在字符串末尾添加+ i即可。否则,只需删除该部分。

这将循环遍历"text1"和"text2"

for( var i=1; i <= 2; i++) {
  document.getElementById('text'+i).value = 'how are you' + i;
}

谢谢大家的建议,我已经做出了更改,但程序仍然存在一些错误。 - user1296160
@user1296160,无论如何,您应该接受此问题中的一个答案,因为我们至少帮助您解决了一些错误。 - Simon Forsberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接