簡體   English   中英

Javascript:單選按鈕組驗證

[英]Javascript: Radio button group validation

我們有一個網絡表單,這是此php表單中如何設置無線電代碼的方法:

<input type="radio" name="2074" id="2074" value="Yes" class="valuetext" >Yes
<input type="radio" name="2074" id="2074" value="No" class="valuetext" >No

我正在研究一些適用於文本字段的自定義驗證代碼,但是只是單擊了單選按鈕,所以我確定這將是復選框的問題

這是驗證代碼,

function blank(field) {
    if ((field.type == "text" || field.type == "textarea") && (field.value == " " || field.value == ""))
    {
        return true;
    }
    else if ((field.type ="radio" || field.type == "checkbox") && (!(field.checked || field.selected || field.selectedIndex > -1)))
    {
        return true;
    }
    else {
        return false;
    }
}

但是當涉及到單選按鈕時,它只會檢查它遇到的第一個單選按鈕。 因此,例如,如果我運行驗證並且不檢查集合中的任何一個收音機,它都會起作用,並給我我所需的錯誤消息,但這僅是因為它檢查了第一個按鈕為空。

如果我選擇“ no ”(收音機的第二個選項),則它無法正常工作,如果沒有,則顯示一條錯誤消息

如果我在收音機的第一個選項中選擇“ ”,則它會按預期工作。

如何獲取JavaScript來抓取該組中的所有無線電,並檢查該組中是否有任何無線電?

先感謝您。

收集需要檢查的字段的功能: * 此外,這是一個在其上方的json腳本,可為字段列表提供數據 *

var field = [], blankFields = [],
        listText = [], listItem = [], fieldId = [], label = [];

function checkRequired(fieldList) {
    for (var i = 0; i < fieldList.length; i++)
    {
        listText = fieldList[i];
        listText = listText.substring(1, listText.length - 1);
        listItem = listText.split("||");
        fieldId = listItem[0];
        label = listItem[1];
        field = document.getElementById(fieldId);

        if (visible(field) && blank(field)){
            blankFields.push(label);
        }
    }
    //return blankFields;
    if (blankFields.length > 0) {
        displayError(blankFields);
    }
}

您可以使用document.getElementsByName("2074") ,然后進行遍歷以查看是否已檢查任何內容。

相關問題: 在JavaScript中,如何獲取頁面中具有給定名稱的所有單選按鈕?

我決定混入一些jQuery,這使生活變得更加輕松:

else if (field.type=="radio")
                {
                 var radiocheck = $('input[type="radio"][name="' + field.name + '"]:checked').size() > 0;
                 if (radiocheck == false){
                     return true;

暫無
暫無

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

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