0

ExtJS 4.1.1a

シンプルな承認フォーム (ログインとパスワード)。

ブラウザでさえ、入力された標準の html フォームとは異なり、入力されたログインとパスワードの値を保存するように求められません。

サンプルコード: http://jsfiddle.net/AllanStark/mKMfh/1/

Ext.create('Ext.window.Window', {
  title: 'Test',
  height: 430,
  width: 335,
  bodyPadding: '20 0 0 0',
  draggable: false,
  resizable: false,
  closable: false,
  layout: {
    type: 'vbox',
    align: 'center'
  },
  bodyStyle: {
    background: '#FFFFFF'
  },
  items: [{
    xtype: 'image',
    width: 150,
    height: 150,
    src: 'images/logo.gif'
  },{
    xtype: 'form',
    url: 'login.php',
    standardSubmit: true,
    border: 0,
    width: 170,
    padding: '20 0 20 0',
    defaultType: 'textfield',
    layout: 'vbox',
    fieldDefaults: {
      labelAlign: 'top',
      msgTarget: 'qtip',
      width: '100%'
    },
    items: [{
      xtype:'textfield',
      fieldLabel: 'Login',
      name: 'login',
      allowBlank: false
    },{
      xtype:'textfield',
      fieldLabel: 'Password',
      name: 'pass',
      inputType: 'password',
      allowBlank: false,
      listeners: {
        specialkey: function(field, e){
          if (e.getKey() == e.ENTER) {
            var form = field.up('form').getForm();
            form.submit();
          }
        }
      }
    }],
    buttons: [{
      text: 'Ok',
      formBind: true,
      disabled: true,
      handler: function() {
        var form = this.up('form').getForm();
        form.submit();
      }
    },{
      text: 'Reset',
      handler: function() {
        this.up('form').getForm().reset();
      }
    }]
  }]
}).show();​
4

1 に答える 1

0

パスワード ダイアログを開くには、html 属性のオートコンプリートを「オン」にする必要があります。Extjsでは「オフ」であり、「回避策」のみを変更する方法はありません。したがって、このイベントをパスワードとユーザー名のリスナーに追加します。

afterrender:関数(cmp){
   cmp.inputEl.set({
       オートコンプリート:「オン」
   });
}
Ext.create('Ext.window.Window', {
  タイトル: 'テスト',
  高さ: 430,
  幅: 335,
  bodyPadding: '20 0 0 0',
  ドラッグ可能: false,
  サイズ変更可能: false,
  閉鎖可能: false,
  レイアウト: {
    タイプ: 'vbox',
    整列:「中央」
  }、
  ボディスタイル: {
    背景: '#FFFFFF'
  }、
  項目: [{
    xtype: '画像',
    幅: 150,
    高さ: 150,
    ソース: 'images/logo.gif'
  },{
    xtype: 'フォーム',
    URL: 'login.php',
    standardSubmit: 真、
    ボーダー: 0,
    幅: 170,
    パディング: '20 0 20 0',
    defaultType: 'テキストフィールド',
    レイアウト: 'vbox',
    フィールドデフォルト: {
      labelAlign: 'トップ',
      msgTarget: 'qtip',
      幅: '100%'
    }、
    項目: [{
      xtype:'テキストフィールド',
      fieldLabel: 'ログイン',
      名前:「ログイン」、
      allowBlank: false,
      リスナー: {
        // ------
        afterrender:関数(cmp){
            cmp.inputEl.set({
                 オートコンプリート:「オン」
            });
       }
       // ------
      }
    },{
      xtype:'テキストフィールド',
      fieldLabel: 'パスワード',
      名前: 'パス',
      入力タイプ: 'パスワード',
      allowBlank: false,
      リスナー: {
        特殊キー: 関数(フィールド, e){
          if (e.getKey() == e.ENTER) {
            var form = field.up('form').getForm();
            form.submit();
          }
        }、
        // ------
        afterrender:関数(cmp){
            cmp.inputEl.set({
                 オートコンプリート:「オン」
            });
       }
       // ------
      }
    }]、
    ボタン: [{
      テキスト: 'わかりました',
      formBind: 真、
      無効: 真、
      ハンドラ: 関数() {
        var form = this.up('form').getForm();
        form.submit();
      }
    },{
      テキスト: 'リセット',
      ハンドラ: 関数() {
        this.up('form').getForm().reset();
      }
    }]
  }]
}).show();

于 2013-01-03T11:10:17.400 に答える