【发布时间】:2013-12-02 04:26:32
【问题描述】:
我正在尝试将具有 onchange 功能的选择菜单转换为单选按钮。但我不是程序员。这里的例子有两组,选择工作,收音机不工作。我认为这可能是处理“field_type”的问题。
示例链接 - 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 用户不需要金钱来帮助你。如果他们知道答案,他们无论如何都会帮助你。 ;)
-
究竟如何转换?
-
哈,谢谢阿哈恩。我需要收音机以与 Select 相同的方式向 NewVal 函数发送一个值。暂时没有发生
-
@RickDavidson 没问题;祝你好运!我没有这方面的经验,否则我会尽力提供帮助。 :)
标签: jquery select onchange radio