我是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