Я пытаюсь преобразовать меню «Выбрать» с функцией обмена на радиокнопках. Но я не программист. Пример здесь имеет оба набора: «Выбрать», «Радио» - нет. I думаю это может быть проблема с обработкой «field_type».Convert js Выбрать для радиокнопки?
Ссылка на пример - http://originscards.com/pledge/strip.php
<script language="JavaScript" type="text/javascript">
var field_type = { check: 0, group: 1 }; // Control Type
var c_iitem = { pledge: 0, pledge2: 1, pledge3: 2, pledge4: 3, shipping: 4 };
var s_aitem = [
{sz: 'pledge', ct: field_type.group, pledgeAmt: 12, qty: 0},
{sz: 'pledge2', ct: field_type.group, pledgeAmt: 17, qty: 0},
{sz: 'pledge3', ct: field_type.group, pledgeAmt: 29, qty: 0},
{sz: 'pledge4', ct: field_type.group, pledgeAmt: 41, qty: 0},
{sz: 'shipping', ct: field_type.check, pledgeAmt: 0, qty: 0}
];
function UpdateQty(iitem)
{
var ctl = document.getElementById(s_aitem[iitem].sz);
if (s_aitem[iitem].ct == field_type.check)
{ s_aitem[iitem].qty = ctl.checked ? 1 : 0; }
else if (s_aitem[iitem].ct == field_type.group)
{
if (iitem == c_iitem.pledge)
s_aitem[c_iitem.pledge].qty = s_aitem[c_iitem.pledge2].qty = s_aitem[c_iitem.pledge3].qty = s_aitem[c_iitem.pledge4].qty = 0;
i = parseInt(ctl.value, 4);
if (i >= 0)
s_aitem[iitem + i].qty = 1;
}
else // num
{ s_aitem[iitem].qty = (ctl.value == '' || isNaN(ctl.value)) ? 0 :
parseInt(ctl.value, 10); }
}
function NewVal(iitem)
{
var i, pledgeAmt, shipping;
UpdateQty(iitem);
pledgeAmt = 0;
for (i = s_aitem.length; --i >= 0;)
pledgeAmt += s_aitem[i].qty * s_aitem[i].pledgeAmt;
if (s_aitem[c_iitem.shipping].qty == 0)
shipping = 0;
else
{
shipping =
s_aitem[c_iitem.pledge].qty * 9 +
s_aitem[c_iitem.pledge2].qty * 9 +
s_aitem[c_iitem.pledge3].qty * 14 +
s_aitem[c_iitem.pledge4].qty * 14 ;
}
document.getElementById('pledgeAmt').innerHTML = pledgeAmt;
document.getElementById('shipAmt').innerHTML = shipping;
document.getElementById('total').innerHTML = pledgeAmt + shipping;
}
function UpdatePrices()
{
UpdateQty(c_iitem.pledge);
NewVal(c_iitem.shipping);
}
</script>
</head>
<body>
<form name="form1">
<!-- SELECT WORKS -->
<select size=1 name="pledge" id="pledge" onchange="NewVal(c_iitem.pledge);"
onkeyup="NewVal(c_iitem.pledge);">
<option value="-1" selected> </option>
<option value="0">pledgeA</option>
<option value="1">pledgeB</option>
<option value="2">pledgeC</option>
<option value="3">pledgeD</option>
</select>
<!-- RADIO DOES NOT -->
<input name="pledge" id="pledge" type="radio" value="-l" style="display:none" checked>
<input name="pledge" id="pledge" type="radio" value="0" onchange="NewVal(c_iitem.pledge);" onkeyup="NewVal(c_iitem.pledge);">Pledge A<br/>
<input name="pledge" id="pledge" type="radio" value="1" onchange="NewVal(c_iitem.pledge);" onkeyup="NewVal(c_iitem.pledge);">Pledge B<br/>
<input name="pledge" id="pledge" type="radio" value="2" onchange="NewVal(c_iitem.pledge);" onkeyup="NewVal(c_iitem.pledge);">Pledge C<br/>
<input name="pledge" id="pledge" type="radio" value="3" onchange="NewVal(c_iitem.pledge);" onkeyup="NewVal(c_iitem.pledge);">Pledge D<br/>
<input id="shipping_us" type="radio" name="shipping" value="-1" checked onchange="NewVal(c_iitem.shipping);" onkeyup="NewVal(c_iitem.shipping);">
No Shipping<br/>
<input id="shipping" type="radio" name="shipping" value="0" onchange="NewVal(c_iitem.shipping);" onkeyup="NewVal(c_iitem.shipping);">
Shipping
Pledge $<span id="pledgeAmt">0</span>
Shipping $<span id="shipAmt">0</span>
Total $<span id="total">0</span>
</form>
<script language="JavaScript" type="text/javascript">UpdatePrices();</script>
StackOverflow не нужны деньги, чтобы помочь вам. Они все равно помогут вам, если они узнают ответ. ;) –
конвертировать как именно? – adeneo
Ha ok thanks Ahaan. Мне нужно, чтобы радиоприемник передавал значение функции NewVal так же, как это делает Select. На данный момент не происходит –