无法使用 jquery 在单选按钮 select 上启用提交按钮
Trouble enabling submit button on radio button select using jquery
我有一个表单,我想保持提交按钮处于禁用状态,直到所需的单选按钮出现 selected.Now 我希望如果用户选中红色单选按钮,然后启用提交,但如果用户选中绿色,那么它应该检查是否alpha 或 beta 的任何人都被 selected 或没有,如果 selected 则启用提交按钮,否则将其保持禁用状态,直到用户检查其中任何一个。这是我的模板和 jquery 代码。
<div class="type1">
<div id="Red">
<input type="radio" class="colorType red" name="colorType" value="Red">Red
</div>
<div id="Green">
<input type="radio" class="colortype green" name="colorType" value="Green">Green
</div>
</div>
<div class="type2">
<input type="radio" class="frequency" name="frequency" value="alpha">Alpha
<input type="radio" class="frequency" name="frequency" value="beta">Beta
</div>
<span class="float-right">
<button class="button-save" disabled>Save & Close</button>
</span>
我的javascript代码是
events : {
'change .colorType': 'removeDisable'
},
removeDisable : function(){
if ($('.red').is(':checked')) {
$(".button-savel").attr("disabled", false);
} else if ($('.green').is(':checked')) {
if ($('.frequency').is(':checked')) {
$(".button-save").attr("disabled", false);
}else {
$(".button-save").attr("disabled", true);
}
} else {
return false;
}
},
一切正常,但当我点击绿色和 select alpha 或 beta 按钮时,按钮未启用。否则,如果我单击红色按钮,则会启用。
我的 javascript 用于 backbone js.
我猜 .is()
检查没有成功,因为有两个项目要检查,而且不能同时检查这两个项目——也许尝试用 'or' 分别检查每个项目比较?
if ($($('.frequency')[0]).is(':checked') || $($('.frequency')[1]).is(':checked')) {
祝你好运!
所以我发现了问题,点击绿色后我需要另一个 on change 事件。按频率创建一个 on change 事件,然后在我单击绿色时调用该函数解决了这个问题。
events : {
'change .colorType': 'removeDisable',
'change .frequency': 'frequencyChange'
},
frequencyChange : function(){
if ($('.frequency').is(':checked')) {
$(".button-save").attr("disabled", false);
}else {
$(".button-save").attr("disabled", true);
}
},
removeDisable : function(){
if ($('.red').is(':checked')) {
$(".button-savel").attr("disabled", false);
} else if ($('.green').is(':checked')) {
$(".button-save").attr("disabled", true);
this.frequencyChange();
} else {
return false;
}
},
这解决了问题。幸好我能够解决问题。
我有一个表单,我想保持提交按钮处于禁用状态,直到所需的单选按钮出现 selected.Now 我希望如果用户选中红色单选按钮,然后启用提交,但如果用户选中绿色,那么它应该检查是否alpha 或 beta 的任何人都被 selected 或没有,如果 selected 则启用提交按钮,否则将其保持禁用状态,直到用户检查其中任何一个。这是我的模板和 jquery 代码。
<div class="type1">
<div id="Red">
<input type="radio" class="colorType red" name="colorType" value="Red">Red
</div>
<div id="Green">
<input type="radio" class="colortype green" name="colorType" value="Green">Green
</div>
</div>
<div class="type2">
<input type="radio" class="frequency" name="frequency" value="alpha">Alpha
<input type="radio" class="frequency" name="frequency" value="beta">Beta
</div>
<span class="float-right">
<button class="button-save" disabled>Save & Close</button>
</span>
我的javascript代码是
events : {
'change .colorType': 'removeDisable'
},
removeDisable : function(){
if ($('.red').is(':checked')) {
$(".button-savel").attr("disabled", false);
} else if ($('.green').is(':checked')) {
if ($('.frequency').is(':checked')) {
$(".button-save").attr("disabled", false);
}else {
$(".button-save").attr("disabled", true);
}
} else {
return false;
}
},
一切正常,但当我点击绿色和 select alpha 或 beta 按钮时,按钮未启用。否则,如果我单击红色按钮,则会启用。 我的 javascript 用于 backbone js.
我猜 .is()
检查没有成功,因为有两个项目要检查,而且不能同时检查这两个项目——也许尝试用 'or' 分别检查每个项目比较?
if ($($('.frequency')[0]).is(':checked') || $($('.frequency')[1]).is(':checked')) {
祝你好运!
所以我发现了问题,点击绿色后我需要另一个 on change 事件。按频率创建一个 on change 事件,然后在我单击绿色时调用该函数解决了这个问题。
events : {
'change .colorType': 'removeDisable',
'change .frequency': 'frequencyChange'
},
frequencyChange : function(){
if ($('.frequency').is(':checked')) {
$(".button-save").attr("disabled", false);
}else {
$(".button-save").attr("disabled", true);
}
},
removeDisable : function(){
if ($('.red').is(':checked')) {
$(".button-savel").attr("disabled", false);
} else if ($('.green').is(':checked')) {
$(".button-save").attr("disabled", true);
this.frequencyChange();
} else {
return false;
}
},
这解决了问题。幸好我能够解决问题。