Ich habe die Entwicklungsseiten von Ninja Forms und Marionette Docs verwendet
https://developer.ninjaforms.com/codex/ ... alidation/
https://developer.ninjaforms.com/codex/fields/
https://marionettejs.com/docs/master/ba ... radio.html
das meiste davon funktioniert, da ich die Feld-ID sehen kann, wenn es validiert auf der Konsole
mein Hook:
Code: Select all
< ? php
namespace App\ Hooks;
use function add_action;
class NJFormsDisableOnChangeValidation extends Hook {
public $priority = 9;
protected $type = 'filter';
protected $actions = [
'wp_enqueue_scripts'
];
public
function __invoke() {
add_action('wp_footer', function() {
?
>
<
script type = "text/javascript" >
jQuery(document).ready(function($) {
console.log('Script loaded correctly');
var ValidationController = Marionette.Object.extend({
initialize: function() {
console.log('ValidationController init');
var fieldChannel = Backbone.Radio.channel('fields');
var submitChannel = Backbone.Radio.channel('submit');
// Deactivate validations on change and blur
fieldChannel.off('change:modelValue');
fieldChannel.off('blur');
// Maintain validation only in submit
this.listenTo(submitChannel, 'validate:field', this.validate);
console.log('Modified validation events: change and blur disabled..');
},
validate: function(model) {
// Check the field type.
if (1 != model.get_setting('required')) return;
console.log('Validation only in submit executed for the field with ID:', model.get('id'));
}
});
new ValidationController();
}); <
/script> <
? php
});
}
}