1
在我的FormPanel領域中,我添加了聽衆blur
。如果出現這種情況我執行表單驗證如下:標記形式爲無效
listeners:{
scope: this,
blur: function(field, value){
var username = field;
if (username.getValue() == '') {
username.markInvalid('This field is required');
} else {
Ext.Ajax.request({
url: 'users/validateForm',
method: 'POST',
params: 'username=' + username.getValue(),
success: function(response, opts) {
var jsonData = Ext.decode(response.responseText);
if (jsonData.msg.username != '') {
username.markInvalid(jsonData.msg.username);
}
}
});
}
}
}
buttons: [{
text: 'Save',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
alert('test');
}
},
formBind:true
},{
text: 'Cancel'
}]
作爲的Ext JS的文檔解釋,該markInvalid()功能隻影響該領域本身。但我也想將表單設置爲無效,以便表單無效時提交按鈕被禁用。目前,窗體上的函數isValid()始終返回true,但字段被標記爲無效。
我現在的問題是,我怎麼能實現這樣的形式也被設置爲無效的上面的代碼?
非常感謝您的幫助!
formBind在版本4.0.2a中無法正常工作。嘗試[這個warkaround](http://stackoverflow.com/questions/6795511/extjs-simple-form-ignores-formbind/6798704#6798704)。 – 2012-02-15 14:08:18
我認爲問題不是formBind配置。在解決方法中,他們使用vtypes,但我不使用它。當我點擊保存按鈕時,函數'isValid()'總是返回'true'。我認爲這與formBind方法無關。 – shub 2012-02-15 14:19:40
Form.isValid始終可以返回true,因爲它可能在'form._boundItems'中緩存了錯誤的字段。所以它可能與我發佈的鏈接中的問題相同。 – 2012-02-15 14:26:41