[英]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")
,然后進行遍歷以查看是否已檢查任何內容。
我決定混入一些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.