Javascript检查是否选中了一个单选按钮

时间:2015-10-20 11:38:21

标签: javascript

我正在尝试检查用户是否选择了至少一个单选按钮。当点击名为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 for checkbox

<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>

当“支付”时,它会起作用。被选中,但是当付款时#39;被选中后我仍然收到警报&#34;请先选择付款方式&#34;

2 个答案:

答案 0 :(得分:3)

void' to non-scalar type只检查是否检查!(payoo || paymd).checked,因为逻辑OR运算符将返回第一个truthy值 - 因为payoo是一个dom元素,它将始终返回

您需要检查

payoo

答案 1 :(得分:2)

您的问题与此语句(payoo || paymd)有关 - 因为payoo将始终存在,您正在检查的是是否已选中payoo。你需要的是:

if(!(payoo.checked || paymd.checked)))

或者,更快的方法可能是:

if(document.querySelectorAll('#paymentoo:checked, #paymentmd:checked').length)