Javascript 如果我选中2个输入单选项,则禁用的提交按钮将启用,但如果我取消选中,则提交按钮将不';不要使背部残疾

Javascript 如果我选中2个输入单选项,则禁用的提交按钮将启用,但如果我取消选中,则提交按钮将不';不要使背部残疾,javascript,jquery,forms,radio-button,form-submit,Javascript,Jquery,Forms,Radio Button,Form Submit,我只是需要一些代码方面的帮助 var prv3; var markIt3 = function(e) { if (prv3 === this && this.checked) { this.checked = false; prv3 = null; } else { prv3 = this; } }; $(function() { $('input.class_x').on('click', markIt3); }); $('

我只是需要一些代码方面的帮助

var prv3;
var markIt3 = function(e) {
  if (prv3 === this && this.checked) {
    this.checked = false;
    prv3 = null; 
  } else {
    prv3 = this;
    }   
};
$(function() {
  $('input.class_x').on('click', markIt3);
});

$('input[type=radio]').on('change', function() {

  var current = $('input.class_x').filter(':checked');
  var sbmtBtn = document.getElementById('SubmitButton');
  sbmtBtn.disabled = true;

  if (current.length > 1) {
    sbmtBtn.disabled = false;
  } else {
    sbmtBtn.disabled = true;
  }
}).change();
我的要求如下: 任何人都可以修复缺少的内容,使表单提交按钮返回到禁用状态,因为此表单仅在选中2个输入类型单选时才启用它

本表前面的描述是所有内容的主要思想:

具有多个输入型收音机的窗体。选中至少2,然后“提交”按钮启用。但是,如果您取消选中其中任何一个,提交按钮应该禁用返回,但我无法实现这一部分。 我只需要一点帮助,别的什么都不需要

请不要太多地修改我的代码!能做到吗

在这里检查小提琴:

谢谢

尝试改用
.prop()
函数

$('input[type=radio]')。在('change',function()上{
var current=$('input.class_x')。过滤器(':checked');
var$sbmtBtn=$(“#提交按钮”);
$sbmtBtn.prop('disabled',true);
如果(当前长度>1){
$sbmtBtn.prop('disabled',false);
}否则{
$sbmtBtn.prop('disabled',true);
}
}).change()

尝试改用
.prop()
函数

$('input[type=radio]')。在('change',function()上{
var current=$('input.class_x')。过滤器(':checked');
var$sbmtBtn=$(“#提交按钮”);
$sbmtBtn.prop('disabled',true);
如果(当前长度>1){
$sbmtBtn.prop('disabled',false);
}否则{
$sbmtBtn.prop('disabled',true);
}
}).change()

..不会触发更改事件,因此在取消选中单选按钮时不会触发更改代码

在该行之后添加以下代码行:

$(this).change();
这将触发更改代码

..不会触发更改事件,因此在取消选中单选按钮时不会触发更改代码

在该行之后添加以下代码行:

$(this).change();

这将触发更改代码。

实际上,问题是取消选择未检测到更改的单选按钮。这个怎么样

var-prv3;
var markIt3=函数(e){
if(prv3==此&&this.checked){
此项检查=错误;
prv3=null;
}否则{
prv3=这个;
}
checkIfValid();
};
$(函数(){
$('input.class_x')。在('click',markIt3');
});
函数checkIfValid(){
var current=$('input.class_x')。过滤器(':checked');
var sbmtBtn=document.getElementById('SubmitButton');
sbmtBtn.disabled=true;
如果(当前长度>1){
sbmtBtn.disabled=false;
}否则{
sbmtBtn.disabled=true;
}
};
输入{
显示:块;
保证金:0.5em0;
}
输入[type='submit']:已禁用{
颜色:红色;
}

实际上,问题是取消选择单选按钮未检测到更改。这个怎么样

var-prv3;
var markIt3=函数(e){
if(prv3==此&&this.checked){
此项检查=错误;
prv3=null;
}否则{
prv3=这个;
}
checkIfValid();
};
$(函数(){
$('input.class_x')。在('click',markIt3');
});
函数checkIfValid(){
var current=$('input.class_x')。过滤器(':checked');
var sbmtBtn=document.getElementById('SubmitButton');
sbmtBtn.disabled=true;
如果(当前长度>1){
sbmtBtn.disabled=false;
}否则{
sbmtBtn.disabled=true;
}
};
输入{
显示:块;
保证金:0.5em0;
}
输入[type='submit']:已禁用{
颜色:红色;
}

或者,您可以将输入的类型更改为复选框,这样做很简单。 这是你的电话号码

var-prv3;
var markIt3=函数(e){
if(prv3==此&&this.checked){
此项检查=错误;
prv3=null;
}否则{
prv3=这个;
}
};
$(函数(){
$('input.class_x')。在('click',markIt3');
});
$('input[type=checkbox]')。在('change',函数(){
var current=$('input.class_x')。过滤器(':checked');
var sbmtBtn=document.getElementById('SubmitButton');
sbmtBtn.disabled=真;
如果(当前长度>1){
sbmtBtn.disabled=false;
}否则{
sbmtBtn.disabled=true;
}
}).change()
输入{
显示:块;
保证金:0.5em0;
}
输入[type='submit']:已禁用{
颜色:红色;
}

或者,您可以将输入的类型更改为复选框,这样做很简单。 这是你的电话号码

var-prv3;
var markIt3=函数(e){
if(prv3==此&&this.checked){
此项检查=错误;
prv3=null;
}否则{
prv3=这个;
}
};
$(函数(){
$('input.class_x')。在('click',markIt3');
});
$('input[type=checkbox]')。在('change',函数(){
var current=$('input.class_x')。过滤器(':checked');
var sbmtBtn=document.getElementById('SubmitButton');
sbmtBtn.disabled=真;
如果(当前长度>1){
sbmtBtn.disabled=false;
}否则{
sbmtBtn.disabled=true;
}
}).change()
输入{
显示:块;
保证金:0.5em0;
}
输入[type='submit']:已禁用{
颜色:红色;
}


但我需要单选按钮;(很高兴你有答案:)但我需要单选按钮;(很高兴你得到了答案:)谢谢axcl,只要从你的代码中添加一个提琴,如果有人想检查谢谢axcl,只要从你的代码中添加一个提琴,如果有人想检查