ユーザー名とパスワードを含む 2 つのフィールドを持つフォームがあります。ハンドラー付きの [loginbutton] があります。コントローラーのイベントを発生させるために、ログインボタンのハンドラーのフィールドからこれらの値を取得するにはどうすればよいですか?
handler: function() {
var form = this.parent.parent;
//HOW TO GET THESE VALUES?
var username = form.user;
var password = form.password;
form.fireEvent('login', username, password);
}
デバッガーを使用すると、これが機能することがわかりましたが、非常に複雑なソリューションのように見えます:
handler: function() {
var form = this.parent.parent;
var fieldset = form.items.items[0];
var username = fieldset.innerItems[0]._component._value;
var password = fieldset.innerItems[1]._component._value;
form.fireEvent('login', username, password);
これは config 宣言を含むコードです。
Ext.define('AddressBook.view.Login', {
title: "Luminizer Login",
extend: 'Ext.form.Panel',
xtype: 'loginForm',
config: {
url: 'login.php',
standardSubmit: false,
items: [
{
xtype: 'fieldset',
title: 'MyCompony',
instructions: 'Log in with username and password.',
defaults: {
required: true,
labelAlign: 'left',
labelWidth: '40%'
},
items: [
{
//SCROLL DOWN FOR HANDLER
xtype: 'textfield',
name: 'name',
label: 'Name',
value: 'user',
autoCapitalize: false
},
{
xtype: 'passwordfield',
name: 'password',
label: 'Password',
value: 'test'
}
]
},
{
xtype: 'toolbar',
docked: 'bottom',
items: [
{xtype: 'spacer'},
{
text: 'Reset',
handler: function() {
form.reset();
}
},
{
text: 'Login',
ui: 'confirm',
handler: function() {
var form = this.parent.parent;
//HOW TO GET THESE VALUES?
var username = form.user;
var password = form.password;
form.fireEvent('login', username, password);
}
}
]
}
],
...
}