我在表单中使用了一个带有两个值1
和2
的单选按钮plata2
,另一个隐藏的plata
输入取一个值依赖于total()
。
所以我在现有函数test = document.getElementById('plata').value;
if (test == 1) {
document.getElementById('plata2').value=pretfinal;
}
else{
document.getElementById('plata2').value=avansfinal;
}
中使用此代码:
plata2
但是else
只取第一个值,private static int SumOfDigits(int value)
{
int result = 0;
while (value > 0)
{
result += value % 10;
value /= 10;
}
return result;
}
public static int StringToDigit(string text)
{
int value = 0;
if (!int.TryParse(text, out value)) throw new InvalidArgumentException(nameof(text));
if (value < 0) throw new ArgumentOutOfRangeException(nameof(text));
while (value >= 10) value = SumOfDigits(value);
return value;
}
永远不会有效?可以帮助这个。
答案 0 :(得分:0)
尝试“检查”而不是值:
test = document.getElementById('plata').checked;
if (test) {document.getElementById('plata2').value=pretfinal;}
else {document.getElementById('plata2').value=avansfinal;}
答案 1 :(得分:0)
我认为你所做的是同时给出了相同id的无线电元素
test = document.getElementById('plata').value;
上面的代码只会选择第一个无线电元素,在你的情况下是第一个值为1的无线电元素。 因此导致if块而不是else块。
以下是您的要求的示例代码
https://jsfiddle.net/udkxynsn/
<label for='plate_1'>1</label>
<input type=radio name='plata' id='plata_1' value=1>
<br>
<label for='plate_1'>2</label>
<input type=radio name='plata' id='plata_2' value=2>
<br>
<input id='plata2'>
<br>
<br>
<div>CLICK</div>
<script>
document.querySelector('div').addEventListener('click', test);
function test(){
test = document.querySelector('[name=plata]:checked').value;
if (test == 1) {
document.getElementById('plata2').value="value1";
}else {
document.getElementById('plata2').value="value2";
}
}
</script>
答案 2 :(得分:0)
检查选择了哪个无线电元素:
function total() {
if (document.getElementById('plata').checked) {
test = 1;
}
else
{
test = 2;
}
if (test == 1) { document.getElementById('plata2').value = pretfinal; }
else { document.getElementById('plata2').value = avansfinal; }
}