因此,埃裏克是完全正確的,它可以做得更容易,然後修改整個模板,但非少我會使用插件這種特殊情況。我做了一個快速:
Ext.define('Ext.form.field.plugin.NoNameAttribute', {
extend: 'Ext.AbstractPlugin',
alias: 'plugin.nonameattribute',
init: function(cmp) {
Ext.Function.interceptAfterCust(cmp, "getSubTplData", function(data){
delete data['name'];
return data;
});
}
});
注意使用方法interceptAfterCust
是一個自定義的礦井,通過原始的結果遞給攔截一個作爲參數修改現有之一。它也使用給定的原始對象(可以作爲範圍威脅)作爲原始方法的範圍。最簡單的是把這些方法添加到Ext.Function
Ext.Function.interceptAfterCust = function(object, methodName, fn, scope) {
var method = object[methodName] || Ext.emptyFn;
return (object[methodName] = function() {
return fn.call(scope || this, method.apply(object, arguments));
});
}
這裏是一個working JSFiddle,其中第一場不會對DOM中的name屬性,即使它在組件存在。
來源
2013-07-23 06:34:28
sra
你的問題需要改進,哪來的代碼,你正在使用?它創建的輸出是什麼?沒有代碼的問題不適合SO。 –
這是一個非常奇怪的規則。您可以使用DOM查詢來查找和操縱您的DOM元素,使其成爲您的心臟內容。你可以在渲染監聽器之後執行它。但是,ExtJS如何用一個沒有名字的表單域提交數據呢? – dbrin
修改此字段的字段模板以省略name屬性,但這會使提交不可能AFAIK。無論如何,這是你正在尋找的解決方案。 – sra