テキストフィールドの内容がデータベースに存在するかどうかを確認したいので、VTypes を定義します。
Ext.apply( Ext.form.field.VTypes,{
sampleSetExist: function(val, field) {
alert('triggered');
var result;
Ext.Ajax.request({
url: 'sampleSetExist.action',
params: {
name:val
},
async:false,
success: function(response){
var res = response.responseText;
var jsonObject = Ext.decode( res );
if( jsonObject.exist == true )
result = false;
else
result = true;
}
});
return result;
}
});
そして、このようなテキストフィールド:
{
fieldLabel: 'Name',
itemId: 'sampleSetName',
name: 'ssi.name',
allowBlank: false,
validateOnBlur: true,
validateOnChange: false,
vtype: 'sampleSetExist',
vtypeText: 'The name has exist!'
}
……
テキストフィールドがぼやけると、バリデータ関数 sampleSetExist が 3 回トリガーされます。これはなぜですか?