簡體   English   中英

如何檢查是否選擇了單選按鈕之一?

[英]How to check if one of radio buttons was selected?

我有JavaScript,可以檢查文本字段和復選框,但是當使用單選按鈕時,它無法區分是否選擇了其中一個選項。

如何正確做到這一點?

這就是我所擁有的:

validateBugForm = function()
{
    var name = document.forms["bug_form"]["Name"].value;
    var email = document.forms["bug_form"]["Email"].value;
    var tos = document.forms["bug_form"]["Accept"].checked;
    var project = document.forms["bug_form"]["project"].value;

    if (name == "")
    {
        alert("You must provide your name or nick name!");
        return false;
    }

    if (project == "")
    {
        alert("You must choose a project.");
        return false;
    }

    if (email.indexOf ('@', 0) == -1 || email.indexOf ('.', 0) == -1)
    {
        alert("You must provide your email address!");
        return false;
    }

    if (!tos)
    {
        alert("You must agree to our Terms of Services.");
        return false;
    }
}

在我的表格中,我有:

<tr>
    <td width="30%">Choose a project in which you encountered a problem. 
    <big><font color="red">*</font></big></td></td>
    <td width="10px" class="table_td_space"></td>
    <td width="70%">
        <input type="radio" name="project" value="1" id="1">1<br>
        <input type="radio" name="project" value="2" id="2">2<br>
        <input type="radio" name="project" value="3" id="3">3<br>
        <input type="radio" name="project" value="4" id="4">4<br>
    </td>
</tr>

您需要遍歷所有單選按鈕選項以查看是否已選擇一個選項:

var projectObj = document.form1.project
var len = projectObj.length
var chosen = null;

for (i = 0; i <len; i++) {
    if (projectObj[i].checked) {
       chosen = projectObj[i].value
    }
}

if (chosen == null) {
    alert("No Radio Button Chosen")
}

http://homepage.ntlworld.com/kayseycarvey/jss3p11.html

只需注意一下,我花了一個小時在此頭上撓頭,因為除非您嘗試使用此單選元素之外的其他方式來驗證表單,否則此方法就可以正常工作。 由於每個單選按鈕都是一個單獨的表單元素,並且您試圖遍歷表單中的所有元素(例如,名稱中帶有“ required_”的所有內容),因此這可能會使其余的驗證混亂或導致其始終出現“假”,因為您在遍歷表單時最終將每個單選按鈕作為一個單獨的元素進行檢查。 我發現的解決方法是,通過在每個單選按鈕上放置一個onClick事件,以在單擊時將其值傳遞到隱藏字段,從而使用隱藏的表單字段來保存所選單選按鈕的值-並檢查是否有一個值在那個隱藏的領域。 並且不要將單選按鈕標記為要檢查的元素。

您需要遍歷所有單選按鈕選項,以查看是否選擇了一個選項,但是當您按住“ projectObj”時,必須調用“ value”方法...

var projectObj = document.form1.project.value;
var len = projectObj.length;
var chosen = null;

for (i = 0; i <len; i++) {
    if (projectObj[i].checked) {
       chosen = projectObj[i].value;
    }
}

if (chosen == null) {enter code here
    alert("No Radio Button Chosen");
} 

那么它將獲得價值,否則它將返回無線電對象列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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