2017-06-07 41 views
0

如何獲得2個不同無線電盒的值,並使用loop/each將其設置爲特定位置?

$(document).ready(function() { 
 

 

 
    $('.allrb').change(function() { 
 
    valueE(); 
 
    }); 
 

 
}); 
 

 

 
function valueE() 
 
{ 
 
    for(j=0; j<=2 ; j++) 
 
    { 
 
    var nofr1=[]; 
 
    row=document.getElementsByName("Fr"+j); 
 
     for (i=0; i<row.length; i++) 
 
     { 
 
     if(row[i].checked) 
 
      nofr1[i]= parseInt(row.value); 
 
     } 
 
    $("#numFr"+(j+1)).val(nofr1[j]); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="table table-hover table-responsive" id="tab"> 
 
<tr id="alertr1" name="v"> 
 
    <td width="200px" id="text">content 1</td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb" value="0"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb" value="1"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb" value="2"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb" value="3"></label></td> 
 
    <td width="30px"><label><input type="radio" name="Fr1" class="allrb" value="4"></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb" value="0" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb" value="1" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb" value="2" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb" value="3" ></label></td> 
 
    <td width="120px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb" value="4" ></label></td> 
 
    <td width="30px"><input type="number" name="numFr1" id="numFr1" disabled></td> 
 
    <td width="30px" bgcolor="Gainsboro"><input type="number" name="numIr1" id="numIr1" disabled></td> 
 
</tr> 
 

 
<tr id="alertr2" name="v"> 
 
    <td width="200px" id="text">content 2</td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb" value="0"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb" value="1"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb" value="2"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb" value="3"></label></td> 
 
    <td width="30px"><label><input type="radio" name="Fr2" class="allrb" value="4"></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb" value="0" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb" value="1" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb" value="2" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb" value="3" ></label></td> 
 
    <td width="120px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb" value="4" ></label></td> 
 
    <td width="30px"><input type="number" name="numFr2" id="numFr2" disabled></td> 
 
    <td width="30px" bgcolor="Gainsboro"><input type="number" name="numIr2" id="numIr2" disabled></td> 
 
</tr> 
 

 
<tr id="alertr3" name="v"> 
 
    <td width="200px" id="text">content 3</td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb" value="0"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb" value="1"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb" value="2"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb" value="3"></label></td> 
 
    <td width="30px"><label><input type="radio" name="Fr3" class="allrb" value="4"></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3" class="allrb" value="0" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3" class="allrb" value="1" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3" class="allrb" value="2" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3" class="allrb" value="3" ></label></td> 
 
    <td width="120px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3" class="allrb" value="4" ></label></td> 
 
    <td width="30px"><input type="number" name="numFr3" id="numFr3" disabled></td> 
 
    <td width="30px" bgcolor="Gainsboro"><input type="number" name="numIr3" id="numIr3" disabled></td> 
 
</tr> 
 

 
</tbody> 
 
</table>

成一排,我有2個不同的單選框,怎麼我得到的所有選框的價值,並設置在特定input[type=number]存在的價值?由於我有16行,每行有2個不同的值框,我想用循環將所有的值循環到特定的位置,否則會有很多冗餘代碼。我試圖做到這一點,但我的jQuery不會工作。謝謝。

+0

讓我看看我是否明白。你有幾行。在每一行中,您都有兩組無線電輸入。對於每一行,您都希望從第一組中獲取該值,並將其分配給一個數組,然後移動到下一個組,然後獲取該組值並將其分配給數組中的下一個點。你想對每一行重複這個? – Darkisa

+0

@Darkisa是的,例如:當我點擊2nb單選按鈕的第一組收音機框,然後我的輸入[type = number]的第一組將顯示1(值= 1),當我點擊3rd按鈕第二組,第二組的輸入[type = number]將顯示2(value = 2。) – Beginner

回答

1

更改的元素可以在事件中引用。如果你給輸入你想更新一個普通的類,你可以找到與你的無線電相關的那個,通過找到無線電父母tr,並在其中找到該類。

$(document).ready(function() { 
 
    $('.allrb').change(valueE); 
 
}); 
 

 

 
function valueE(e) { 
 
    var newValue = e.target.value; 
 
    var $radio = $(e.target); 
 
    
 
    if ($radio.is('.Fr')) { 
 
    $radio.closest('tr').find('.numFr').val(newValue); 
 
    } else { 
 
    $radio.closest('tr').find('.numIr').val(newValue); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="table table-hover table-responsive" id="tab"> 
 
    <tr id="alertr1" name="v"> 
 
    <td width="200px" id="text">content 1</td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb Fr" value="0"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb Fr" value="1"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb Fr" value="2"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr1" class="allrb Fr" value="3"></label></td> 
 
    <td width="30px"><label><input type="radio" name="Fr1" class="allrb Fr" value="4"></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb Ir" value="0" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb Ir" value="1" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb Ir" value="2" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb Ir" value="3" ></label></td> 
 
    <td width="120px" bgcolor="Gainsboro"><label><input type="radio" name="Ir1" class="allrb Ir" value="4" ></label></td> 
 
    <td width="30px"><input type="number" name="numFr1" class="numFr" id="numFr1" disabled></td> 
 
    <td width="30px" bgcolor="Gainsboro"><input type="number" name="numIr1" class="numIr" id="numIr1" disabled></td> 
 
    </tr> 
 

 
    <tr id="alertr2" name="v"> 
 
    <td width="200px" id="text">content 2</td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb Fr" value="0"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb Fr" value="1"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb Fr" value="2"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr2" class="allrb Fr" value="3"></label></td> 
 
    <td width="30px"><label><input type="radio" name="Fr2" class="allrb Fr" value="4"></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb Ir" value="0" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb Ir" value="1" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb Ir" value="2" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb Ir" value="3" ></label></td> 
 
    <td width="120px" bgcolor="Gainsboro"><label><input type="radio" name="Ir2" class="allrb Ir" value="4" ></label></td> 
 
    <td width="30px"><input type="number" name="numFr2" class="numFr" id="numFr2" disabled></td> 
 
    <td width="30px" bgcolor="Gainsboro"><input type="number" name="numIr2" class="numIr" id="numIr2" disabled></td> 
 
    </tr> 
 

 
    <tr id="alertr3" name="v"> 
 
    <td width="200px" id="text">content 3</td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb Fr" value="0"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb Fr" value="1"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb Fr" value="2"></label></td> 
 
    <td width="40px"><label><input type="radio" name="Fr3" class="allrb Fr" value="3"></label></td> 
 
    <td width="30px"><label><input type="radio" name="Fr3" class="allrb Fr" value="4"></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3 Ir" class="allrb" value="0" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir Ir3" class="allrb" value="1" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3 Ir" class="allrb" value="2" ></label></td> 
 
    <td width="50px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3 Ir" class="allrb" value="3" ></label></td> 
 
    <td width="120px" bgcolor="Gainsboro"><label><input type="radio" name="Ir3 Ir" class="allrb" value="4" ></label></td> 
 
    <td width="30px"><input type="number" name="numFr2" class="numFr" id="numFr2" disabled></td> 
 
    <td width="30px" bgcolor="Gainsboro"><input type="number" name="numIr3" class="numIr" id="numIr3" disabled></td> 
 
    </tr> 
 

 
    </tbody> 
 
</table>

+0

嗨,謝謝,但是當我單擊第二組無線電框時,值也會在第一個輸入中改變[type =數字] = O – Beginner

+0

我的意思是當我選擇第一組無線電框(沒有灰色)時,第一個輸入框中的數值顯示(沒有灰色),這是正確的。但是,當我選擇第二組無線電盒(灰色)時,值將在第一個輸入數字框中改變(無灰色),這是錯誤的。在那裏應該改變第二個輸入數字(灰色)。 – Beginner

+0

@Beginner已更新,以便第二臺無線電瞄準正確的事情。 – Taplar

1

這應該爲你工作,而無需更改HTML:

$(document).ready(function() { 
    $('.allrb').change(valueE); 
}); 

function valueE(e) { 
    var index = $(this).closest("tr").index(); 
    var newValue = e.target.value; 
    if ($(this).closest("td").attr("bgcolor") == "Gainsboro"){ 
    $("#numIr" + (index + 1)).val(newValue); 
    }else $("#numFr" + (index + 1)).val(newValue); 
} 

然而,這不是最後一排的第一個無線電組工作,因爲你的輸入有一個id="numFr2",我相信你的意思是標記爲id="numFr3"一旦你改正了名字,它也適用於那個。

+0

謝謝,我已經嘗試過了,但是輸入數字有2行跳過。這意味着當我爲第1行選擇單選按鈕時,結果將顯示在第3行 – Beginner

+0

這不應該是這種情況,除非您更改了HTML。這裏是基於你的原始HTML的工作小提琴。 https://jsfiddle.net/wmw4fqv1/ – Darkisa

+0

奧普,對不起,你是對的,你的代碼工作正常,我檢查了我的代碼,可以工作了。謝謝! – Beginner

相關問題