我是sencha觸摸新手,我有一個奇怪的按鈕問題。當按下Sencha觸摸按鈕沒有響應Tap事件
Adduserview.js
Ext.define('App.view.Adduserview', {
extend: 'Ext.form.Panel',
xtype: 'adduserview',
requires: ['Ext.form.FieldSet','Ext.field.Select','App.store.Companies'],
config: {
id: 'userform',
items: [
{
xtype: 'fieldset',
title: 'Details',
items:[
{
xtype: 'textfield',
name: 'userName',
label: 'Name'
},
{
xtype: 'textfield',
name: 'userLastname',
label: 'Lastname'
},
{
xtype: 'textfield',
name: 'userNumber',
label: 'Number'
}
]
},
{
xtype: 'fieldset',
title: 'Links',
items: {
xtype: 'selectfield',
label: 'Company',
store: Ext.create('App.store.Companies'),
displayField: 'companyName',
valueField: 'companyName'
}
},
{
xtype: 'button',
text: 'Send',
id: 'adduserButton'
}
]
}
});
Adduser.js
Ext.define('App.controller.Adduser', {
extend: 'Ext.app.Controller',
config: {
refs:{
userform: '#userform'
},
control: {
'#adduserButton': {
tap: function(){
var valuesUser = this.getUserform().getValues();
console.log(valuesUser);
if (notNull(valuesUser.userName) && notNull(valuesUser.userLastname) && notNull(valuesUser.userNumber)){
Ext.Ajax.request({
url: 'http://server.com/insertUser.php',
params: valuesUser,
method: 'post',
success: function(response){
var text = response.responseText;
Ext.Msg.alert('Success', text);
},
failure : function(response) {
Ext.Msg.alert('Error','Error while submitting the form');
console.log(response.responseText);
}
});
this.getUserform().reset();
}
else{
Ext.Msg.alert('Error', 'All the fields are necessary');
}
}
}
}
}
});
function notNull(a) {
if(a!="" && !(a.match(/^\s+$/))){
return true;
}
else{
return false;
}
};
的問題是,該按鈕不起作用,它只是什麼都不做:我使用MVC,和我有,而且我有另外兩個FormPanels完全一樣的,但有不同的數據,並且他們每個人都有一個控制器,就像我展示的控制器一樣,但在tap功能中使用不同的代碼,並且它們工作正常。我注意到,當我看到在Chrome中加載的腳本時,Adduser.js不在那裏,所以我想這就是它不工作的原因,但我不知道爲什麼它不加載。 順便說一句,我將控制器添加到App.js.
感謝您的幫助。
你好@Jaffer,我沒有你說什麼,但它仍然沒有工作。謝謝 – user1802827
@ user1802827請確保在tap中加入alert:function()這個函數被調用 – Oxi
我評論tap中的所有代碼:function(),只留下一個alert並且它沒有「alert」按下,是否正確?也許控制器無法鏈接到視圖上的按鈕,但我嘗試了幾種方法來引用按鈕... – user1802827