将textarea名称增加到javascript函数

时间:2014-04-03 16:37:17

标签: javascript php html

所以我想要实现的是增加点“。$ id。”在下面的javascript代码中,从0开始,像点+ n,它将是一个动态值,根据表中的行。对于值'button'也是如此。$ id。“'这一切都是因为带有样式的radiobutton标签。 所以我想做的就是摆脱JavaScript函数中所有硬编码的不同var txt1到txt + n,button0到button + n和points0到points + n。 这里真正的问题是行:var buttons1 = document.forms [0] .button0;如何在for循环中将button0中的0替换为'i'。像button + i这样的东西是行不通的。

哦,我正在尝试做的是从radiobuttons获取一个textarea的值,每个tablerow有一个buttongroup和textarea。

下面的代码适用于我表格中的前7行...

echo "
<td>
<div class='radio'> 
<input id='".$temp1."' type='radio' name='button".$id."' onclick='myFunction()' value='4'>  
<label for='".$temp1."'></label>  
<input id='".$temp2."' type='radio' name='button".$id."'  onclick='myFunction()' value='3'>  
<label for='".$temp2."'></label>
<input id='".$temp3."' type='radio' name='button".$id."'  onclick='myFunction()' value='2'>  
<label for='".$temp3."'></label>  
<input id='".$temp4."' type='radio' name='button".$id."' onclick='myFunction()'  value='1'>  
<label for='".$temp4."'></label>
</div>";
echo"<textarea id='points".$id."' name='points".$id."' cols='1' rows='1' ;>    </textarea>
</td>    
</tr>";

Javascript功能:

 function myFunction() {

 var txt1 ='';
 var txt2 ='';
 var txt3 ='';
 var txt4 ='';
 var txt5 ='';
 var txt6 ='';
 var txt7 ='';

 var buttons1 = document.forms[0].button0;                                                          
 var buttons2 = document.forms[0].button1;
 var buttons3 = document.forms[0].button2;
 var buttons4 = document.forms[0].button3;
 var buttons5 = document.forms[0].button4;
 var buttons6 = document.forms[0].button5;
 var buttons7 = document.forms[0].button6;
 var buttons8 = document.forms[0].button7;

for (var i = 0; i < 4; i++) {
    if (buttons1[i].checked) {
         txt1 = txt1 + buttons1[i].value + " ";
    }
    if (buttons2[i].checked) {
         txt2 = txt2 + buttons2[i].value + " ";
    }
    if (buttons3[i].checked) {
         txt3 = txt3 + buttons3[i].value + " ";
    }
    if (buttons4[i].checked) {
         txt4 = txt4 + buttons4[i].value + " ";
    }
    if (buttons5[i].checked) {
         txt5 = txt5 + buttons5[i].value + " ";
    }
    if (buttons6[i].checked) {
         txt6 = txt6 + buttons6[i].value + " ";
    }
    if (buttons7[i].checked) {
         txt7 = txt7 + buttons7[i].value + " ";
    }

}


 document.getElementById("points0").value = txt1;
 console.log(txt1);
 document.getElementById("points1").value = txt2;
 console.log(txt2);
 document.getElementById("points2").value = txt3;
 console.log(txt3);
 document.getElementById("points3").value = txt4;
 console.log(txt4);
 document.getElementById("points4").value = txt5;
 console.log(txt5);
 document.getElementById("points5").value = txt6;
 console.log(txt6);
 document.getElementById("points6").value = txt7;
 console.log(txt7);

 }

2 个答案:

答案 0 :(得分:1)

我认为你需要的是使用&#34; eval&#34; javascript函数

尝试以下

var buttons1;                                                          
var buttons2;
var buttons3;
var buttons4;
var buttons5;
var buttons6;
var buttons7;
var buttons8;

var j;
for(var i=0;i<8;i++){
    j=i+1;
    eval("buttons" +j+ " = document.forms[0].button" +i+ ";");
}

答案 1 :(得分:0)

如果我理解正确,  尝试这样的事情: 将您的onclick更改为:

<input id='".$temp4."' type='radio' name='button".$id."' onclick='myFunction(this)'  value='1'>

并更改功能:

function myFunction(button){
  var name= button.name;
  var id= name.split('button')[1];;
  document.getElementById("points"+id).value = buttons.value +" ";
}