как отключить bootstrap кнопку переключения - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь отключить bootstrap кнопки переключения, но пока не получилось

   <div class="toggle btn btn-default" disabled data-toggle="toggle" data-bind="toggle:isok(), css:{off:!isok()}">
                        <div class="toggle-group">
                            <label  class="btn btn-primary toggle-on">ON</label>
                            <label class="btn btn-default active toggle-off">OFF</label>
                            <span class="toggle-handle btn btn-default"></span>
                        </div>
                    </div>

Я использую нокаут для привязки данных. Я жестко запрограммировал добавить отключенное свойство, как вы можете видеть, но оно отображается как отключенное, но я все еще могу включить или отключить его.

Как это исправить?

1 Ответ

1 голос
/ 17 марта 2020

Вы жестко закодировали атрибут disabled для элемента div. Див нельзя отключить. Измените div на button, и он будет работать, см. Пример ниже, в котором тумблер был изготовлен вручную:

function Test() {
  var _this = this;
  _this.disabled = ko.observable();
  _this.active = ko.observable();

  _this.toggleActive = function() {
    _this.active(!_this.active());
  }

  _this.toggleDisable = function() {
    _this.disabled(!_this.disabled());
  }
}

ko.applyBindings(new Test());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

<button type="button" class="btn btn-primary" aria-pressed="false" autocomplete="off" data-bind="css: {active: active}, click: toggleActive, enable: disabled">
      <span data-bind="visible: active">ON</span>
      <span data-bind="visible: !active()">OFF</span>
    </button>

<a href="#" data-bind="click: toggleDisable">toggle disable</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...