by Guest » 06 Jan 2025, 20:55
Ich versuche, dass meine Formulare nur die Validierung beim Absenden durchführen (was standardmäßig bereits der Fall ist). Ich habe einen Hook erstellt, um ein Skript zu pushen, um das Unschärfeereignis aufzuheben, damit das Formular seine Standardvalidierung durchführen kann, es aber nicht Entfernt sie einfach nicht.
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
});
}
}
Ich versuche, dass meine Formulare nur die Validierung beim Absenden durchführen (was standardmäßig bereits der Fall ist). Ich habe einen Hook erstellt, um ein Skript zu pushen, um das Unschärfeereignis aufzuheben, damit das Formular seine Standardvalidierung durchführen kann, es aber nicht Entfernt sie einfach nicht.
Ich habe die Entwicklungsseiten von Ninja Forms und Marionette Docs verwendet
https://developer.ninjaforms.com/codex/client-side-field-validation/
https://developer.ninjaforms.com/codex/fields/
https://marionettejs.com/docs/master/backbone.radio.html
das meiste davon funktioniert, da ich die Feld-ID sehen kann, wenn es validiert auf der Konsole
mein Hook:
[code]< ? 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
});
}
}[/code]