Отключить флажки в Sencha Touch - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь использовать флажок, чтобы сделать компонент серым / отключить.

field.setDisabled(true);

Это нормально работает в браузере, но в браузере устройств iPhone и iPad он отключает и выделяет метку серым цветом, но пользователь может установить любой из флажков.

Кто-нибудь знает, как это реализовать?

Заранее спасибо.

1 Ответ

0 голосов
/ 19 января 2012

Вероятно, это связано с открытием BUG # 135 (отключенные флажки / радиопереключатели все еще работают) .

Комментарии к ошибке предоставляют несколько обходных путей, один из которых (вы можете поместить это в один из ваших файлов JavaScript в другом месте после загрузки Sencha Touch, вам нужно сначала Ext.form.Checkbox, если его еще нет):

Ext.override(Ext.form.Checkbox, {
  onChange: function(e) {
    if (e) {
      if (e.browserEvent) {
        e = e.browserEvent;
      }

      if (Ext.supports.Touch && !e.isSimulated) {
        e.preventDefault();
        e.stopPropagation();
        return;
      }
    }

    if(!this.isDisabled()){
      if (this.isChecked()) {
        this.lastState = true;
        this.fireEvent('check', this);
      } else {
        this.lastState = false;
        this.fireEvent('uncheck', this);
      }
    } else {
      var state;
      if(!Ext.isEmpty(this.lastState)){
        state = this.lastState;
      } else {
        state = Ext.isEmpty(this.originalState) ?
                  this.getBooleanIsChecked(this.checked) : this.originalState;
      }
      this.setChecked(state);
    }
  }
});
...