Javascript 如何识别是否已通过编程方式检查收音机?

Javascript 如何识别是否已通过编程方式检查收音机?,javascript,ajax,forms,radio-button,Javascript,Ajax,Forms,Radio Button,我有一个表单页面,用户可以在其中输入ID,相应的配置文件数据从mysql中提取并显示在表单中,以便用户可以编辑它 一个元素是一组收音机,因此您可以选择一个年份级别(即“1”、“2”、“3”等) 当用户提供ID时,将进行AJAX调用,以使用数据预填充表单,包括选择适当的电台 问题: 用户必须选择年度级别以提交表单。我使用verifyForm()方法对此进行检查: function verifyForm() { if( !document.addStudentForm.elements["y

我有一个表单页面,用户可以在其中输入ID,相应的配置文件数据从mysql中提取并显示在表单中,以便用户可以编辑它

一个元素是一组收音机,因此您可以选择一个年份级别(即“1”、“2”、“3”等)

当用户提供ID时,将进行AJAX调用,以使用数据预填充表单,包括选择适当的电台

问题:

用户必须选择年度级别以提交表单。我使用
verifyForm()
方法对此进行检查:

function verifyForm() {
    if( !document.addStudentForm.elements["yearLevel"].checked ) {
        alert( "You must select a year level before submitting." );
        return false;
    }
};
我希望这将检查
yearLevel
,如果未选择选项,则警告/返回false

但是,当AJAX数据预先选择了
yearLevel
无线电时,这仍然表现为用户没有选择无线电

收音机由js通过以下代码填充:

document.getElementById(“yearLevel”)checked=true

编辑:这里是相关的HTML

<form name="addStudentForm" action="validation/updateStudentValidate.php" method="POST" onSubmit="return verifyForm()">                                 
    <input type="radio" value="1" name="yearLevel" disabled id="yearLevel_1" /> 1
    <input type="radio" value="2" name="yearLevel" disabled id="yearLevel_2" /> 2
    <input type="radio" value="3" name="yearLevel" disabled id="yearLevel_3" /> 3
    <input type="radio" value="4" name="yearLevel" disabled id="yearLevel_4" /> 4
    <input type="radio" value="5" name="yearLevel" disabled id="yearLevel_5" /> 5
    <input type="radio" value="6" name="yearLevel" disabled id="yearLevel_6" /> 6
</form>

1.
2.
3.
4.
5.
6.
问题:

我如何让javascript正确识别收音机是否已被检查,而不管它是手动选择的还是编程选择的

根据本例改编,为了提高速度,您可以在AJAX成功回报中使用:

var radios = document.getElementsByName('yearLevel'),
    i = radios.length,
    isChecked = false;

while(i--){
    if (radios[i].checked) {
        isChecked = true;
        break;
    }
}
然后调用函数时:

function verifyForm(){
    if(!isChecked){
        alert( "You must select a year level before submitting." );
        return false;
    }
};
这是假设您的HTML中没有任何其他名为
yearLevel
的项目


这将实际返回值,我想我不确定您是否希望看到某个特定项目被选中,或者仅仅是它们已经被选中。这个函数可以同时完成这两个功能。

你的AJAX函数是如何选择单选按钮的?@Robb:添加到原始帖子中。你已经验证了它确实选中了框?@PlantTheIdea:是的,我已经确认它确实正确填充了框。你已经确认它正确选中了框,所以我认为禁用的部分不是你的问题。你有没有试着像我在回答中那样,把它们循环一遍?这可能正是您检查
checked
属性的元素的方式,因为该属性用于单个元素而不是集合。dude冷静,我没有否决投票的访问级别:(好了,我投了赞成票。)啊,我很抱歉,这就是我仓促下结论的原因。这解决了我的问题。我本来希望我能用一行字侥幸逃脱,但哦,好吧:)谢谢你的帮助!还有一个注意事项,你在
i--
之后缺少了一个分号。