我想仅在用户选中复选框并在输入字段中写入一些文本时自动启用此保存按钮。我不知道我在这里缺少什么,或者是否有其他替代方法可以做到这一点。



jQuery("input[type='text']").on("keyup", function () {
  validate();
});

function validate(){
  jQuery("input[type='text']").each(function(){

    if (jQuery(this).val() != "" )
    {
      if((jQuery("#groupidtext").val() !="") && (jQuery(".cate").is(':checked')))
      {

        jQuery("#save_me").removeAttr("disabled");
      }
      else {
        jQuery("#save_me").attr("disabled", "disabled");
      }
    }
  });
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="groupidtext" type="text" maxlength="50" />
<input class="cate" type="checkbox"/><label for="1">One</label>
<input type="submit" disabled="disabled" id="save_me" value="Save"/>

最佳答案

您的代码很好,您也可以只听复选框更改:

jQuery("input[type='checkbox']").on("change", function () {
    validate();
});


注意:在input上跟踪用户更改时,使用keyup事件而不是input更有效。

jQuery("input[type='text']").on("input", function () {
    validate();
});


希望这可以帮助。



jQuery("input[type='text']").on("input", function () {
  validate();
});

jQuery("input[type='checkbox']").on("change", function () {
  validate();
});

function validate(){
  jQuery("input[type='text']").each(function(){

    if (jQuery(this).val() != "" )
    {
      if((jQuery("#groupidtext").val() !="") && (jQuery(".cate").is(':checked')))
      {

        jQuery("#save_me").removeAttr("disabled");
      }
      else {
        jQuery("#save_me").attr("disabled", "disabled");
      }
    }
  });
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input id="groupidtext" type="text" maxlength="50" />
  <input class="cate" type="checkbox"/><label for="1">One</label>
  <input type="submit" disabled="disabled" id="save_me" value="Save"/>

</form>

08-19 15:00