我有一個包含用戶名和密碼的兩個字段的表單。我有一個處理程序的[登錄按鈕]。如何從登錄按鈕的處理程序中的字段中獲取這些值,以便爲控制器觸發事件?如何在窗體Sencha Touch 2中獲取用戶名和密碼的價值
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);
這是配置聲明代碼。
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);
}
}
]
}
],
...
}
你使用MVC結構嗎? –