2014-04-03 36 views
0

所以我想實現的是增加點「。$ id」。在下面的javascript代碼中,從0開始,就像點+ n,它將是根據表中的行的動態值。所有這一切都是因爲樣式化的單選按鈕標籤是循環等。 所以我想要做的就是擺脫所有硬編碼的不同var txt1 to txt + n,button0在JavaScript函數中按鈕+ n和點0到點+ n。 這裏對我來說真正的問題是:var buttons1 = document.forms [0] .button0;如何在for循環中將button0中的0替換爲'i'。有點像按鈕+我不會工作。增加textarea名稱到javascript函數

哦,我正在試圖做的是從單選按鈕到textarea的值,每個表格有一個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); 

} 

回答

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 +" "; 
} 
+0

謝謝它的作品,我不得不添加的第一個空值的點元素,否則textarea將包含較早的單選按鈕點擊值。現在我注意到,並非所有的值都正確地存儲到我的表中,但我必須有一個錯誤的地方..'document.getElementById(「points」+ id).value ='';' – dansui

1

我想你需要的是用「EVAL」功能在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+ ";"); 
}