在Sencha Touch中禁用复选框

时间:2012-01-19 09:17:03

标签: iphone ipad html5 sencha-touch

我正在尝试使用Check Box使组件灰色/禁用。

field.setDisabled(true);

这在浏览器中运行良好,但在iPhone和iPad设备浏览器中,它会禁用并使标签变灰,但用户仍然可以选择任何复选框。

有人知道如何实现这个吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这可能是由于打开了BUG #135 (Disabled Checkboxes/Radiobuttons still working)

对bug的评论提供了几种解决方法,其中之一是(在加载Sencha Touch之后,您可以将其放在其他一个JavaScript文件中,如果它还不存在,则首先需要Ext.form.Checkbox):< / p>

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);
    }
  }
});