私はDay CQ5でサイトを開発し、問題に直面しました。 私はコンポーネントとそのダイアログを作成しています。私はいくつかの要素 "pathfield"を含んでいるコンポーネント要素 "multifield"のダイアログで使用します。特定の数の要素を "パスフィールド"に設定し、ボタン "+"と " - "を削除するにはどうすればよいですか?CQ5のマルチフィールドの要素数を制限する方法は?
答えて
私は今週、まさにこの問題に遭遇してきました:)
デフォルトでは、エディタが入ることができるアイテムの数を制限することができないようです。問題を解決するには、私はマルチフィールドの下fieldConfigノードに設定された「制限」プロパティのチェックを追加しました
/apps/cq/ui/widgets/source/widgets/form/MultiField.js
に置かMultifield.jsのオーバーレイを作成しました。存在しない場合、&はゼロではなく、ユーザーが追加できるフィールドの最大数としてこれを使用します。
フルオーバーレイを掲載することにより、著作権の問題に取得したいが、次のように私が行った変更しないでください:の値を取得するためのチェックを追加、
をコンストラクタ(ライン#53)で「+」ボタン(線#71)のハンドラで
if (!config.fieldConfig.limit) {
config.fieldConfig.limit = "0";
}
以下に関数を変更:fieldConfigノードから限界むしろボタンを取り除くより
if(config.fieldConfig.limit == 0 || list.items.getCount() <= config.fieldConfig.limit) {
list.addItem();
} else {
CQ.Ext.Msg.show({
title: 'Limit reached',
msg: 'You are only allowed to add ' + config.fieldConfig.limit +
' items to this module',
icon:CQ.Ext.MessageBox.WARNING,
buttons: CQ.Ext.Msg.OK
});
}
を私はポップアップを作成して、「Nは許可されたフィールドの最大数です」という情報をエディタに通知します。
単純な変更ですが、仕事をします!これは使いたいと思っています。
この問題の標準的な解決策はまだ見つかりませんでしたが、ちょっとしたことがありました。最初に、必要な数の子要素をコンポーネントのダイアログを通じて追加します。そして、 "sliderpanel-dialog-multifield"のように、要素 "multifield"にプロパティ "class"を追加します。それから私は、コンポーネントのCSSスタイルのこのような構成に追加します。
.sliderpanel-dialog-multifield .x-btn{
display: none;
}
「.X-BTN」CQ5のボタンを使用するクラスです。その後、ボタンは非表示になり、マルチフィールドの要素を追加または削除することはできません。私はこの問題がリスナーとスクリプトの助けを借りて解決できるという別の提案をしていますが、上で引用した解決するのは難しいでしょう。私はこれまでこの変種に焦点を当ててきましたが、もし他のアイデアがあれば、私はそれらを知ることに非常に興味があります。
マルチレベルノードに並行してリスナーを追加することもできます。例えば
イベント:beforeadd
機能:
function(list,component,index) {
if(this.fieldConfig.limit!=0) {
if(this.fieldConfig.limit == (list.items.getCount()-1)) {
CQ.Ext.Msg.show(
{title: 'Limit reached', msg: 'You are only allowed to add '+this.fieldConfig.limit+' items to this module',icon:CQ.Ext.MessageBox.WARNING,buttons: CQ.Ext.Msg.OK}
);;return false;
}
}
}
前提条件:マルチフィールドのfieldConfigに制限値を追加します。
beforeaddソリューションに問題があるようです。フォーム/ダイアログは無効な状態になり、マークされたフィールドを修正するように指示されますが、すべて正しいです。
フォーム検証を再初期化する方法はありますか?
制限に達すると、項目の追加ボタンを削除して機能を実装しているこの記事を参照してください。
http://letsaem.blogspot.in/2015/12/add-limit-to-number-of-elements-in.html
実装のプロセスは、しかし:
- (ロング)**制限を追加します**プロパティfieldConfigノードへ
- 多門XTYPEにリスナーのノードを追加し、次のリスナーを追加。
removeditem:
function(list) {
var length = list.items.length;
if (length <= list.fieldConfig.limit) {
list.items.items[length - 1].show();
}
}
beforeadd:今、あなたが制限を与える場合
function(list, component, index) {
var length = list.items.length;
var addButton = list.items.items[length - 1];
if (length == list.fieldConfig.limit) {
addButton.hide();
}
}
:3
追加項目ボタンが消えます3つの項目
を追加した後がアイテムを追加]ボタンを消える:
- 1. XSDで要素の属性を制限する方法は?
- 2. jqueryで複数の要素の文字列長を制限する方法は?
- 3. NSXMLParserを特定の要素の後の要素に制限する方法
- 4. FHIRでQuantity要素のユニットタイプを制限する方法
- 5. Flex Listの制限要素数
- 6. XSD複数の要素の値を制限する
- 7. 同じ行に要素を無制限に置く方法は?
- 8. スレッドの数を制限する方法
- 9. 要素を別の要素の上に強制する方法
- 10. XSD要素の長さを4の倍数/ 4の倍数に制限する制限
- 11. インスタンスにアクセスする要求の数を制限する方法は?
- 12. javascriptの関数で作成された動的要素の量を制限する方法は?
- 13. TorchのGPUでテンソルの要素を小数点以下4桁に制限する方法は?
- 14. 親要素のプロファイル要素の位置を制御する方法は?
- 15. 最大数を制限する方法
- 16. パラメータの制限なしで無制限の引数を取得する方法
- 17. jQueryプラグイン関数をいくつかの要素だけに制限する方法は?
- 18. Jsonix要素と値の制限
- 19. XMLから要素の数が制限されています
- 20. バーチャルボックス内のネットワークアダプタの数を制限する方法は?
- 21. Django2.0のURL構文の数を制限する方法は?
- 22. Cargo.tomlのテストスレッドの数を制限する方法は?
- 23. ページング= falseの場合の行数を制限する方法は?
- 24. 作成されるスレッドオブジェクトの数を制限する方法は?
- 25. crmの整数フィールドの数字を制限する方法
- 26. xsdで要素を空でないように制限する方法
- 27. javascriptで要素のスクロールバーを制御する方法は?
- 28. 有限要素法の使い方
- 29. acts_as_ferret - 少数のフィールドに検索を制限する方法は?
- 30. JTextAreaの行数を制限する方法は?
あなたはこの質問に答えることができますか? http://stackoverflow.com/questions/28361998/how-to-provide-custom-value-on-checkbox-in-cq5-dialog – user2142786