knockout.js 如何禁用/启用启动盒对话框中的按钮

2vuwiymt  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(113)

如何禁用/启用“保存”按钮?

bootbox.dialog({
    message: [
    '<div class="title"'>,
    <h4>Title</h4>',
    </div>'].join(''),
    buttons: {
      label: 'Save',
      callback: function(){ // function code here  .....
      });
kpbwa7wx

kpbwa7wx1#

想通了:

$('.btn-save').prop("disabled", true);

其中btn-save是按钮的className。

r1zhe5dt

r1zhe5dt2#

对于那些使用AngularJS的用户,这里介绍了如何在ng-model=“name”的文本输入中出现值时禁用/启用按钮:

var dialog = bootbox.dialog({
    title: title,
    message: '<input type="text" ng-model="name" />',
    buttons: {
        apply: {
            label: 'Apply',
            className: 'btn btn-primary apply-btn',
            callback: function() {
                // whatever
            }
        },
        cancel: {
            label: 'Cancel',
            className: 'btn btn-default',
        }
    }
});

dialog.bind('shown.bs.modal', function() {
    $applyBtn = $(this).find('.apply-btn');
    $applyBtn.attr('ng-disabled', '!name');
    $compile($applyBtn)($s);
});
zy1mlcev

zy1mlcev3#

使用web调试器(停止在回调函数上),我找到了一个基于user 2884789的问题的解决方案:

$(this).find('button');

保存className按钮将出现在列表中;例如:'按钮.按钮.按钮.按钮-SM.按钮-主要'
所以我在回调函数中禁用了保存按钮:

$(this).find('button.btn.btn.btn-sm.btn-primary').prop('disabled', true);

这对我很有效。

相关问题