私は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. Flex Listの制限要素数
- 4. 同じ行に要素を無制限に置く方法は?
- 5. スレッドの数を制限する方法
- 6. XMLから要素の数が制限されています
- 7. jQueryプラグイン関数をいくつかの要素だけに制限する方法は?
- 8. 有限要素法の使い方
- 9. xsdで要素を空でないように制限する方法
- 10. JTextAreaの行数を制限する方法は?
- 11. acts_as_ferret - 少数のフィールドに検索を制限する方法は?
- 12. ルビの変数を制限する方法は?
- 13. Pythonマルチプロセッシング:待機中のプロセス数を制限する方法は?
- 14. データベースの行数を自動的に制限する方法は?
- 15. 行数や文字数をCSSで制限する方法は?
- 16. window.Open()関数のウィンドウ数を制限する方法
- 17. XMLスキーマ - enumまたはkeyrefに要素を制限する
- 18. XMLスキーマ - 要素の外観を制限する
- 19. XMLスキーマ制限要素の説明が必要です
- 20. 追加するテキストボックスの数を制限する方法(PHP)
- 21. RedisのリーダーボードをN個の要素に制限する方法はありますか?
- 22. ダウンロードサイズを制限する方法は?
- 23. redisのデータベース内のエントリ数を制限する方法
- 24. Javaのファイルサイズを制限する方法
- 25. テキストの幅を制限する方法
- 26. 列の値を制限する方法
- 27. コンテンツの幅を制限する方法
- 28. APIのレートを制限する方法
- 29. 要求のHTTP要求のダウンロード速度を制限する方法Pythonライブラリ?
- 30. XSDに2つの別々の要素の結果のための制限を作成する方法を
あなたはこの質問に答えることができますか? http://stackoverflow.com/questions/28361998/how-to-provide-custom-value-on-checkbox-in-cq5-dialog – user2142786