typo3 6.2.10
powermail 2.10.1
ein freundliches hallo an alle,
ich habe folgendes problem:
Ich habe ein morestep formular und die validierung findet erst statt, wenn ich ganz am schluss auf absenden klicke. früher ging die validierung per js sofort noch in dem schritt wo z.b. die emailadresse nicht eingetragen ist.
ich habe keine fehler in der konsole.
wie bekomme ich eine sofortige validierung auf die reihe?
wäre über hilfe sehr dankbar.
Blöderweise ist das Event hart verdrahtet.
Du kannst testweise mal Zeile 81 in der EXT: powermail/Classes/ViewHelpers/Validation/AbstractValidationViewHelper.php von 'change' auf 'blur' abändern und testen.
Sorry für die spätete Rückmeldung, bin erst jetzt zum testen gekommen.
Leider funktioniert das nur, wenn ich das Pflichtfeld auswähle. Wenn ich nicht in das Feld gehe sondern gleich auf weiter klicke passiert nichts.
Zusätzlich stört auch ein wenig, dass beim weiter klicken die Seite nicht neu geladen wird und bei unterschiedlich langen Formularseiten muss ich ständig wieder hoch scrollen. Kann man hier vieleicht wie früher irgendwie wieder auf PHP wechseln? Damit könnte sich vieleicht auch das erste Problem beheben lassen.
Ich danke für die Hilfe.
Das ist aktuell leider nicht angedacht - sorry
Ok hmm schade.
Ein letzter Versuch, kann mir vieleicht jmd JS Hilfe leisten. Also theoretisch muss es doch möglich sein, beim click auf den next Button (.powermail_tab_navigation_next) diese Validierung auszulösen oder? Kenne mich leider mit JS nicht so recht aus.
so schwer ist es anscheinend doch nicht, aber ich hab wie schon erwähnt keine JS erfahrung ^^, habe mir unterstützung geholt und hier ist die Lösung für das Problem, dass im morestep die validierung erst zum schluss passiert.
in der tabs.js folgende function ändern:
/**
* Create next button
*
* @param {object} element
* @param {array} options
* @return {object}
*/
function createNextButton(element, options) {
return $('<a />')
.prop('href', '#')
.addClass('powermail_tab_navigation_next')
.html('>')
.click(function(e) {
e.preventDefault();
var isValid = true;
$(element).find('.powermail_fieldset:visible').find('input[data-parsley-id]').each(function(i, e){
if(!$(e)[0].checkValidity()) {
isValid = false;
$(e).parsley().validate();
}
});
if(isValid) showNextTab(element, options);
});
}