gpt4 book ai didi

javascript - 如何以编程方式识别 radio 是否已被检查?

转载 作者:行者123 更新时间:2023-12-03 23:59:11 28 4
gpt4 key购买 nike

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

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

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

问题:

用户必须选择年级才能提交表单。我用 verifyForm() 检查这个方法:

function verifyForm() {
if( !document.addStudentForm.elements["yearLevel"].checked ) {
alert( "You must select a year level before submitting." );
return false;
}
};

我希望这会检查 yearLevel并且,如果未选择某个选项,则警告/返回 false。

但是,当 yearLevel radio 是由 AJAX 数据预先选择的,这仍然表现得好像用户没有选择 radio 一样。

radio 由 js 通过以下代码填充:

document.getElementById( "yearLevel_<?=$student['student']->get('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>

问题:

我如何让我的 javascript 正确识别 radio 是否已被检查,无论它是手动选择还是以编程方式选择?

最佳答案

取自this StackOverflow post并针对此示例和速度进行了调整,您可以在 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 的任何其他项目。

这实际上会返回值,我想我不确定您是想查看某个特定的项目,还是只是想查看它们是否已被选中。此函数将同时执行这两项操作。

关于javascript - 如何以编程方式识别 radio 是否已被检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19863882/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com