JS: init live validation on blockwidget's widgets when row is added (#78227) #367
|
@ -753,7 +753,8 @@ $(function() {
|
|||
$block.replaceWith($new_block);
|
||||
const $new_blockrow = $new_block.find('.BlockSubWidget').last();
|
||||
add_js_behaviours($('[data-field-id="' + block_id + '"]'));
|
||||
$('form').trigger('wcs:block-row-added');
|
||||
$form.trigger('wcs:block-row-added');
|
||||
$form[0].dispatchEvent(new CustomEvent('wcs:block-row-added', { detail: { newBlock: $new_block[0] } } ));
|
||||
|
||||
$(document).trigger('wcs:maps-init');
|
||||
if ($new_block.find('[data-live-source]')) {
|
||||
$('form div[data-live-source]').parents('form').trigger('wcs:change', {modified_field: 'init'});
|
||||
|
@ -933,12 +934,20 @@ const LiveValidation = (function(){
|
|||
document.addEventListener('DOMContentLoaded', function(){
|
||||
const form = document.querySelector('form[data-live-validation-url]')
|
||||
if (!form) return
|
||||
const formWidgets = form.querySelectorAll('.widget:not(.BlockWidget):not(.BlockSubWidget)')
|
||||
const widgetSelector = '.widget:not(.BlockWidget):not(.BlockSubWidget)'
|
||||
const formWidgets = form.querySelectorAll(widgetSelector)
|
||||
let formDatas = {
|
||||
errorTpl: document.getElementById('form_error_tpl'),
|
||||
checkUrl: form.dataset.liveValidationUrl + '?field=',
|
||||
}
|
||||
formWidgets.forEach((widget) => {
|
||||
new LiveValidation(widget, formDatas)
|
||||
function initLiveValidation(widgets) {
|
||||
widgets.forEach((widget) => {
|
||||
new LiveValidation(widget, formDatas)
|
||||
})
|
||||
}
|
||||
initLiveValidation(formWidgets)
|
||||
form.addEventListener('wcs:block-row-added', (event) => {
|
||||
const blockWidgets = event.detail.newBlock.querySelectorAll(widgetSelector)
|
||||
initLiveValidation(blockWidgets)
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue
Par uniformité avec le code environnant j'aurais laissé un point-virgule; mais total détail.