Jquery 方法不禁用按钮

Jquery method not disabling buttons

我正在尝试通过 JQuery 方法禁用按钮。它应该通过向它们添加属性和 类 来工作,但它不起作用。

我检查过我发送的 ID 是否正确,我在控制台中没有收到任何错误,但按钮没有被禁用。

$('[id^="pro2-consult"]').on("click", function (event, xhr, settings) {
  var id=event.target.id.substring(12);
  DisableBTNforConsult(id);
});

 function DisableBTNforConsult(id) {
  var cont1='#pro-save'+id;
  var cont2='#pro-create'+id;
  $(cont1, cont2).prop('disabled', true);
  $(cont1, cont2).addClass('btn-disabled');
  $(cont1, cont2).attr('disabled', 'disabled');
}
<button id="pro-save-p-sis-0610" class=" btn btn-sm btn-success" type="button">Save</button>
<button id="pro-create-p-sis-0610" class=" btn btn-sm btn-success" type="button">Create</button>
<button id="pro2-consult-p-sis-0610" class=" btn btn-sm btn-success" type="button">consult</button>

  1. 根据问题 the original version 中的代码,您的 id 即将出现 "p-sis-0610"。然后,当您将它附加到 "#pro-save""#pro-create" 时,您在两者之间缺少破折号 -

    var cont1 = '#pro-save-' + id;
    var cont2 = '#pro-create-' + id;
    
  2. 将 jQuery 选择器构造为单个变量。

    var selector = cont1 + ', ' + cont2;
    

工作演示:https://jsfiddle.net/ob8taw48/


您也可以使用 jQuery 的 $(this) 来获取您的 id

var id = $(this).attr('id').substring(12);

$('button[id^=pro2-consult]').on("click", function() {
  var id=$(this).prop('id').substring(12);
  DisableBTNforConsult(id);
});

 function DisableBTNforConsult(id) {
  $('button:not(#pro2-consult'+id).prop('disabled', true);
  $('button:not(#pro2-consult'+id).addClass('btn-disabled');
  $('button:not(#pro2-consult'+id).attr('disabled', 'disabled');
}
.btn-disabled{color:#eeddcc;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="pro-save-p-sis-0610" class=" btn btn-sm btn-success" type="button">Save</button>
<button id="pro-create-p-sis-0610" class=" btn btn-sm btn-success" type="button">Create</button>
<button id="pro2-consult-p-sis-0610" class=" btn btn-sm btn-success" type="button">consult</button>