[英]Javascript check if one radio button is selected
我正在尝试检查用户是否选择了至少一个单选按钮。 单击名为Mallname的复选框时,我需要检查是否已选中其中一个付款单选框。
这是我的付款HTML(我需要检查是否选中了这两者之一)
<fieldset>
<legend>Payment method</legend>
<div class='container'>
<label for='payment' >Please select payment method.:</label>
<p>
<label for='payment' >Once off (Full Payment):</label>
<input type='radio' name='payment' id='paymentoo' onClick="SetHTML2('once')" value="Once off (Full Payment)" required <?php echo($isOnceoffFullPayment?'checked="checked"':''); ?> maxlength="50" />
<span id='register_payment_errorloc' class='error'></span>
<label for='payment' >Monthly Debit:</label>
<input type='radio' name='payment' id='paymentmd' onClick="SetHTML2('montly')" value="Monthly Debit" required <?php echo($isMonthlyDebit?'checked="checked"':''); ?> maxlength="50" />
<span id='register_payment_errorloc' class='error'></span>
<br>
</div>
</fieldset>
复选框的HTML
<td width='400'><label for='contract' >$malls</label></td><td width='100'><input type='checkbox' name='mallname[]' id='mallname' value='$malls' onclick = 'checkpayment(); addemupfull(); addemupfulldebit();'/></td>
这是我的java
<script type="text/javascript">
function checkpayment(){
var payoo = document.getElementById("paymentoo");
var paymd = document.getElementById("paymentmd");
if(!(payoo || paymd).checked){
var malchecks = document.getElementById("mallname");
malchecks.checked = false;
alert("Please select a payment method first");
}
}
</script>
当选择“ paymentoo”时有效,但是当选择“ paymentmd”时,我仍然收到警报“请先选择一种付款方式”
!(payoo || paymd).checked
将仅检查是否检查了payoo
,因为逻辑OR运算符将返回第一个真实值-由于payoo
是dom元素,因此它将始终返回
你需要检查一下
if (!payoo.checked && !paymd.checked) {// if (!(payoo.checked || paymd.checked)) {
var malchecks = document.getElementById("mallname");
malchecks.checked = false;
alert("Please select a payment method first");
}
您的问题与以下语句有关(payoo || paymd)
-因为payoo
将始终存在,因此您所要检查的只是是否已检查好payoo
。 您需要的是:
if(!(payoo.checked || paymd.checked)))
或者,更快的方法可能是:
if(document.querySelectorAll('#paymentoo:checked, #paymentmd:checked').length)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.