<label for="Merital Status">Marital Status:</label>
<input type="radio" title="Marital Status" name="Marital_Status" id="Marital Status" value="Single"/>Single
<input type="radio" title="Marital Status" name="Marital_Status" value="Married"/>Married
<input type="radio" title="Marital Status" name="Marital_Status" value="Divorced"/>Divorced
我想编写一个JavaScript函数来检查是否选择了名为“Merital_Status”的辐射按钮。我代表我为此目的编写的函数。该函数将元素id作为参数并返回boolen:
function radio_button_checker(elemId)
{
var radios = document.getElementsByTagName(elemId);
var value = false;
for (var i = 0; i < radios.length; i++)
{
if (radios[i].checked)
{
value = true;
break;
}
}
return value;
}
我像这样调用这个函数:
if (radio_button_checker('Marital_Status') == false)
{
alert('Please fill in your Merital Status!');
return false;
}
但它不起作用。请告诉我如何修改我的功能,以检查是否检查了radiobutton。
答案 0 :(得分:6)
您正在寻找标签名为“Merital_Status”的元素。将document.getElementsByTagName
替换为document.getElementsByName
,它应该有效。
答案 1 :(得分:1)
您正在混合ID
和NAME
。
您的单选按钮“set”需要具有相同的名称(您拥有),如果您需要通过ID单独引用它们,那么您需要添加一个ID到最后两个(当前未设置...如果您将标签应用于每个选项,则不需要)。您将需要每个单选按钮的标签标签,因为它允许用户单击单词而不仅仅是小单选按钮,从而提高了可用性。
Marital Status:
<label><input type="radio" name="Marital_Status" value="Single"/>Single</label>
<label><input type="radio" name="Marital_Status" value="Married"/>Married</label>
<label><input type="radio" name="Marital_Status" value="Divorced"/>Divorced</label>
但是当你测试时...你想看到集合中至少有1个无线电被检查。你可以这样做:
function radioButtonChecker(fieldNAME){
var radioSet = document.forms[0].elements[fieldName];
for(var i=0;i<radioSet.length;i++){
if(radioSet[i].checked){
return true;
}
}
return false;
}
这里有一些假设。