En supposant un certain « modèle » <aui:select>
existe au sein de votre forme similaire à:
<aui:select id="elementIdPrefix0" name="elementIdPrefix0" label="Number" showEmptyOption='true' > <!-- options go here --></aui:select>
Dans votre auto-fields
, vous devrez fournir un écouteur d'événement pour l'événement on
clone
. Dans le rappel vous recherchez le <aui:select>
à partir du nœud de conteneur de ligne qui vient d'être créé (passé dans le rappel en tant que paramètre).
<script>
AUI().use('liferay-auto-fields', 'aui-form-validator', function(A){
//Setup rules
var elementIdPrefix = '<portlet:namespace />elementIdPrefix',
myRules = {},
rulesRepository = {};
rulesRepository[elementIdPrefix] = {required:true};
myRules [elementIdPrefix + '0'] = rulesRepository[elementIdPrefix];
//Define validator
var validator = new A.FormValidator({
boundingBox: '#<portlet:namespace />myForm',
rules: myRules
});
new Liferay.AutoFields({
contentBox: '#my-fields',
fieldIndexes: '<portlet:namespace />indexes',
on: {
'clone': function(container){
//Lookup the clone
AUI().all('[name^=<portlet:namespace />elementId]').each(function(node, index){
if(container.row.contains(node)){
console.log("Assign to " + node.get('id'))
//inject the rules
myRules [node.get('id')] = rulesRepository[elementIdPrefix]
}
})
}
}
}).render();
});
</script>
Idéalement, vous devriez être en mesure d'utiliser un sélecteur d'enfant pour obtenir le nœud à l'intérieur du conteneur clone
. J'ai dû fournir un moyen différent puisque je ne pouvais pas obtenir cette méthode pour travailler. La raison pour laquelle je peux utiliser mon approche est due au fait que je sais ce que le elementIdPrefix
est. Pour pouvoir donner l'exemple, je suis allé de l'avant et j'ai profité de ce fait.
Pour une approche plus dynamique, un sélecteur tel que myNode.one('> selectorString');
devrait être utilisé.
Je voudrais également inclure que vous avez [demandé] (http://www.liferay.com/community/forums/-/message_boards/message/38630011?_19_redirect=http%3A%2F%2Fwww.liferay.com% 2Fcommunity% 2Fforums% 2F-% 2Fmessage_boards% 2Fsearch% 3F_19_keywords% 3Dautofields% 26_19_searchCategoryId% 3D0% 26_19_breadcrumbsCategoryId% 3D0% 26_19_redirect% 3Dhttp% 253A% 252F% 252Fwww.liferay.com% 252Fcommunity% 252Fforums% 252F-% 252Fmessage_boards% 252Fmessage% 252F15088039% 26_19_formDate% 3D1402068697228) la question sur les forums liferay. – Origineil
Les champs font-ils partie d'un formulaire? – Origineil
Oui Origineil, les champs font partie du formulaire –