In extjs4 how to apply email validation to editable combobox - combobox

I am working in extjs4. I have following field=
{
xtype : 'combo',
queryMode : 'local',
multiSelect : true,
valueField : 'id',
displayField : 'emailAddress',
fieldLabel : 'Email address',
editable : true
}
So i am allowing user to enter email address manually also.So user enters email and press enter key.I want apply validation on editing in such a way that when user manually enters email address, then after pressing enter key,combo should accept that email only if its valid email.So how to apply such validation in extjs4 to combo

{
xtype : 'combo',
queryMode : 'local',
multiSelect : true,
valueField : 'id',
displayField : 'emailAddress',
fieldLabel : 'Email address',
editable : true,
**vtype:'email'**
}
Validations on the form fields are done using vTypes, it seems to be working fine on code editor. Test it out.

Related

How to change the index of some value in Ext js combobox

I have a combobox gets the list of values from serverside. When I add a new
value in db ,it will reflect at the last index of the combobox.My requirement is
for a given value I want to change the index to zero.
For example if I added x and y as new values , now I want to change the
index of x to zero.
My combobox code:
{
xtype : 'combo',
//typeAhead : true,
triggerAction : 'all',
name : 'agreementTypeCombo',
id : 'agreementTypeCombo',
//hiddenName : 'agreementTypeCombo',
editable : false,
mode : 'local',
store : new Ext.data.JsonStore({
fields : [{
name : 'id',
mapping : 'id'
}, {
name : 'label',
mapping : 'label'
}
],
idProperty : 'id',
data : MD_updateOpportunityMasterDataVO.agreementTypeList
}),
valueField : 'id',
displayField : 'label',
//emptyText : CONST_NOT_AVAILABLE,
fieldLabel : 'Agreement Type',
labelStyle: 'font-weight:bold;',
helpText : getFieldTip(MODULE_NAME,CATEGORY_SALES_SUMMARY,'Agreement Type'),
//allowBlank : false,
anchor : '95%',
value : opportunityVO.agreementTypeId
}
If you add it locally use
store.insert(0, newItem);
If you add it on server and then reload then the server must return the combo store records in the required order.

FieldLabel inside a field

In EXTJS, is there anyway we can add a fieldLabel inside a field? Something like an emptyText but should not disappear on editing the field.
As for as i understand you want to display some content inside field that can not be editable.
What you can do is display content just besides the text field
{
xtype: 'textfield',
fieldLabel:'<span>Scale <span class="help_text">your static content goes here</span></span>',
labelWidth: 170,
value: appName ,
name : "appName",
readOnly: true,
allowBlank: false
}

Extjs Combo - type text header and it will be focus to select

I have 'xtype: combe' like http://jsfiddle.net/KYRhC/
{
xtype : 'combo',
fieldLabel : 'Letter',
store : mySimpleStore,
displayField : 'name',
typeAhead : true,
autoSelect: true,
triggerAction: 'all',
forceSelection: true,
editable: false,
mode : 'local'
}
I want when i click to selectbox and type header of text and it will be focus to select
example type d -> D will focus to select
I have option typeAhead : true, but not working.
You need to set
editable: true
minChars: 1
see here
Note that the search will ignore case so d and D is the same
As commented by #rixo
instead of mode which is deprecated, use queryMode to have the combo
react really quickly.

Ext js 4 boxselect shows multiselect data when editing the form

Is there any methods to load the multiselected data on Boxselect xtype while editing the form in EXTJS 4
I am using
Ext.getCmp('boxselect id').setValue(5,6,7,10).
The above code is working when i give the single value to set value,but my condtion is to load multiple selected data when editing the form,because the boxselect is of multiselect type.
{
xtype : 'boxselect',
store : 'store',
name: 'attributes',
id: 'attributes',
displayField: 'name',
valueField: 'abbr',
multiSelect : true,
fieldLabel: 'Attribute',
allowBlank: false,
editable: true,
allowQueryAll : false,
forceSelection : true,
typeAhead: true,
triggerAction: 'all',
delimiter : ','
},
Try this Ext.getCmp('boxselect id').setValue([5,6,7,10]).
Make sure array

Extjs superboxselect keyup event is not firing

I am using superboxselect for one of my projects. I need to perform some additional filtering. Therefore i need to be able to do it in the keyup event.
But i can not get it to work.
var test = new Ext.ux.form.SuperBoxSelect( {
applyTo : 'testId',
id : 'test',
allowBlank : true,
msgTarget : 'title',
xtype : 'superboxselect',
resizable : true,
hiddenName : 'statesHidden[]',
width : 300,
store : somestore,
mode : 'local',
displayField : 'name',
valueField : 'code',
classField : 'cls',
styleField : 'style',
extraItemCls : 'x-flag',
extraItemStyle : 'border-width:2px',
stackItems : true,
listeners : {'keyup' : testFunction}
});
function testFunction(){
alert("hola");
}
set enableKeyEvents property as true.
enableKeyEvents: true

Resources