javascript - 选择单选按钮时,如何测试是否已经选择了另一个?
问题描述
我有一个表格,每行有 2 个单选按钮组 - 这是一系列问题的是/否选择。
选择“是”会增加一个变量以跟踪“是”答案的总数。除非已经选择了 YES,否则选择 NO 不会执行任何操作,在这种情况下,它会减少总数。
我可以增加 YES easy peasy。问题是在选择NO时检测YES的状态,因为通过选择NO,在我可以测试之前不再选择YES。薛定谔的纽扣?
如何在更改之前单击 NO 并测试 YES 的状态?
<input type='radio' id = 'q1Y' name='q1' value='1Y' onChange='countY(this.id);'>
<input type='radio' id = 'q1N' name='q1' value='1N' onChange='countN(this.id);'>
function countN(id){
q = id.slice(0, -1);
/////////////////
//
// The problem is here. By the time the code reaches this point, Y is already unchecked
//
////////////////
if($('#'+q+'Y').prop('checked')===true){
score--;
$("#scoretotal").html(score);
}
}
解决方案
您可以使用onmousedown
而不是onchange
. 这在更改按钮的值以反映单击的结果之前运行。
但不是递增和递减运行计数,而是简单地计算所有YES
按钮以获得总数。
function count() {
var total = $(":radio[value$=Y]:checked").length;
$("#scoretotal").html(total);
}
推荐阅读
- amazon-web-services - 在烧瓶应用程序中出现 403 禁止错误
- javascript - 如何在 React Native 中隐藏底部操作栏
- c++ - 我可以在命名空间中包含头文件吗?
- ssl - 自定义 OpenSSL 配置文件以使其与自定义引擎和 TLS v1.0 一起使用
- javascript - 通过数组 node.js 中的项目进行映射
- mongodb - 无法从 mongodb 驱动程序中获取任何文档
- r - 通过 sjPlots tab_model 和 emmeans contrast 函数调整后来自同一 LMM 的不同调整 p 值?
- python-3.x - 在 Pandas 中对不同的组和多列应用不同的功能
- r - 从包含星期数、星期几的数据框中获取日期(yyyy-mm-dd)
- openlayers-3 - api3.geo.admin.ch v 3.6.0 OpenLayers 3 DragBox 在使用 firefox 时不显示在地图上(在 chrome 和 IE edge 上运行良好)