簡體   English   中英

Javascript檢查是否選擇了一個單選按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM