大家好,先提供我的問題程式碼如下:
function valueCheck(Obj){
var a = document.getElementsByName("a");
var b = document.getElementsByName("b");
for(j = 1; j <= 100; j++){
var Obj_Str = document.getElementsByName("status_"+j);
var Count = b.length;
for(i = 0; i < Count; i++){
sum = 1;
while(sum < 1500){
if(Obj_Str[i] == Obj){
aValue = a[sum].value;
b[j - 1].value = aValue;
}
sum +=3;
}
}
}
}
變數sum
可以如理想中的往後面走3個,例如:1、4、7、10、13......
最後結果if(Obj_Str[i] == Obj){...}
我希望可以達到例如如下:
b[0].value = a[1].value;
b[1].value = a[4].value;
b[2].value = a[7].value;
b[3].value = a[10].value;
b[4].value = a[13].value;
但目前每一個b[j - 1].value
卻都等於最後一個aValue;
?
還請指教,謝謝
你好,輸入大概是如下:
<textarea name="a">測試一之一</textarea>
<textarea name="a">測試一之二</textarea>
<textarea name="a">測試一之三</textarea>
<input type="checkbox" name="status_1" onclick="valueCheck(this)">勾選複製
<textarea name="b">將測試一之二複製</textarea>
<textarea name="a">測試二之一</textarea>
<textarea name="a">測試二之二</textarea>
<textarea name="a">測試二之三</textarea>
<input type="checkbox" name="status_2" onclick="valueCheck(this)">勾選複製
<textarea name="b">將測試二之二複製</textarea>
<textarea name="a">測試三之一</textarea>
<textarea name="a">測試三之二</textarea>
<textarea name="a">測試三之三</textarea>
<input type="checkbox" name="status_3" onclick="valueCheck(this)">勾選複製
<textarea name="b">將測試三之二複製</textarea>
點選checkbox,會將某一個name="a"
輸入框內容,複製到name="b"
的輸入框內容。
謝謝,可以了
原來幾行程式就可以了,我搞得太複雜了
我根據你的原始碼寫了以下JavaScript,
你的迴圈有點莫名其妙,
以你的情況根本不需要迴圈,
觸發事件的時候就會去呼叫function了.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<textarea name="a">測試一之一</textarea>
<textarea name="a">測試一之二</textarea>
<textarea name="a">測試一之三</textarea>
<input type="checkbox" name="status_1" onclick="valueCheck(this)">勾選複製
<textarea name="b">將測試一之二複製</textarea>
<textarea name="a">測試二之一</textarea>
<textarea name="a">測試二之二</textarea>
<textarea name="a">測試二之三</textarea>
<input type="checkbox" name="status_2" onclick="valueCheck(this)">勾選複製
<textarea name="b">將測試二之二複製</textarea>
<textarea name="a">測試三之一</textarea>
<textarea name="a">測試三之二</textarea>
<textarea name="a">測試三之三</textarea>
<input type="checkbox" name="status_3" onclick="valueCheck(this)">勾選複製
<textarea name="b">將測試三之二複製</textarea>
</body>
<script>
function valueCheck(Obj)
{
const a = document.getElementsByName("a");
const b = document.getElementsByName("b");
var index = Obj.name.replace('status_', '');
var check = Obj.checked;
if(check)
{
//勾選才複製, 沒勾選不複製
b[index-1].value = a[3*index-2].value;
}
else
{
//隨便要做什麼,在這裡我把它清空,看起來比較明顯
b[index-1].value = '';
}
}
</script>
</html>