gpt4 book ai didi

jQuery 防止单选按钮被点击

转载 作者:行者123 更新时间:2023-12-01 03:47:49 24 4
gpt4 key购买 nike

所有,当单击单选按钮以查看所选组中是否至少有一个条目时,我可以运行以下代码。

jQuery("input[type=radio]").click(function(event){
alert('it is clicked');
var num_questions = jQuery("#num_questions").val();
var new_questions = parseInt(num_questions) + 1;
for(var i=1; i<new_questions; i++){
var radios = jQuery("input[type=radio]");
var group = radios.filter('[name=rating_value_'+i+']');
if(group.filter(":checked").length==0){
var answers_to_questions = "false";
return false;
}else{
var answers_to_questions = "true";
jQuery("#no_answers").html('');
}
//alert((group.filter(":checked").length)?"checked":"not checked");
}
});

我收到警报,所以我知道它正在到达那里,但是,单选按钮没有被选中。但是,当我删除此代码时,它工作正常。有什么想法为什么会导致这种情况发生吗?

提前致谢!

最佳答案

从事件处理程序返回 false 会阻止该事件发生默认操作。如果单击单选按钮,默认操作是选择该单选按钮(并取消选择其组中先前选择的按钮)。

"when a radio button is clicked to see if there is at least one entry in the group(s) choosen"

我不明白你想在这里实现什么目标。 “至少一个”没有意义,因为在给定组中最多只能检查一个 radio 。仅当最初未选中任何 radio 时,才会发生一组中少于一个的情况,因为用户无法取消选中给定组中的所有 radio 。

话虽如此,一般来说您的代码可以简化:

jQuery("input[type=radio]").click(function(event){
var num_questions = jQuery("#num_questions").val(),
new_questions = parseInt(num_questions, 10) + 1,
radios = jQuery("input[type=radio]"),
all_answered = true;
for(var i=1; i<new_questions; i++){
if(radios.filter('[name=rating_value_'+i+']:checked').length===0){
all_answered = false;
break;
// return false; <------ don't return false or it cancels the click
}
}
if (!all_answered) {
// a group was found that didn't have an answer selected
// so do something
} else
jQuery("#no_answers").html('');
});

关于jQuery 防止单选按钮被点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11572743/

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