无法使用 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 &#38; 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;
}
},

这解决了问题。幸好我能够解决问题。