Hallo,
ich hänge ein wenig an einem total simplen Problem fest und brauche mal kurz einen Denkanstoß.
Ich möchte eine neue Checkbox in user_billing.tpl hinzufügen. Diese Checkbox soll ein Pflichtfeld sein und wird NICHT in der DB gespeichert.
Ich habe es versucht nach dem normalen Inputvalidierungsschema:
<fieldset [{if $aErrors.oxuser__oxdatenschutz}]class="oxInValid"[{/if}]>
<input type="checkbox" id="datenschutz" name="datenschutz" value="datenschutz" class="field checkbox js-oxValidate js-oxValidate_notEmpty" />
<label for="datenschutz" class="req"><span></span>[{ oxmultilang ident="FORM_FIELDSET_USER_ACCOUNT_AGB" }]</label>
<p class="oxValidateError">
<span class="js-oxError_notEmpty">Bitte akzeptieren Sie die Datenschutzrichtlinien</span>
[{include file="message/inputvalidation.tpl" aErrors=$aErrors.oxuser__oxdatenschutz}]
</p>
</fieldset>
Allerdings ist so das Feld immer Valid - auch wenn die Checkbox nicht angehakt ist. Was mache ich falsch? Überprüft " js-oxValidate_notEmpty" nur ob ein value gesetzt ist? Gibt es eine eigene Prüfung für Checkboxen?
Vielen Dank für eure Hilfe
okay - ich habe es erstmal so gelöst das ich in der oxinputvalidator.js eine neue option hinzugefügt habe die prüft ob eine Checkbox ‘checked’ ist.
Aber ist das der korrekte Weg?
Ist das die Lösung in der oxinputvalidator.js?
*/
( function( $ ) {
oxInputValidator = {
options: {
checkbox : "checked",
classValid : "oxValid",
classInValid : "oxInValid",
ich habe in dem user_noregister.tpl folgendes eingefügt:
[{block name="user_noaccount_newsletter"}]
<fieldset [{if $aErrors.oxuser__oxdatenschutz}]class="oxInValid"[{/if}]>
<b><label for="datenschutz" class="req"><span></span>[{ oxmultilang ident="FORM_FIELDSET_USER_ACCOUNT_data_privacy_1" }]</label> </b>
<input type="checkbox" id="datenschutz" name="datenschutz" value="1" class="field checkbox js-oxValidate js-oxValidate_notEmpty" />
<span class="inputNote">[{ oxmultilang ident="FORM_FIELDSET_USER_data_privacy__MESSAGE" }]</span>
<p class="oxValidateError">
<span class="js-oxError_notEmpty">Bitte akzeptieren Sie die Datenschutzrichtlinien</span>
[{include file="message/inputvalidation.tpl" aErrors=$aErrors.oxuser__oxdatenschutz}]
</p>
</fieldset>
[{/block}]
Leider bewirkt das be mir nichts. Hat einer ne Idee? Über welches Stichwort finde ich Hilfe zu dem Thema?
So, ich glaube ich bin auf dem richtigen Weg. Ich habe die Datenschutzabfrage mit diesem Ansatz begonnen zu lösen.
Es funktioniert soweit, dass der Kunde in das text Eingabefeld seine E-Mail-Adresse eintragen muss um fortfahren zu können.
<li [{if $aErrors.oxuser__oxusername}]class="oxInValid"[{/if}]>
[{block name="user_noaccount_email"}]
<label class="req">[{ oxmultilang ident="FORM_FIELDSET_USER_ACCOUNT_data_privacy_1" }]</label>
<input id="userLoginName" class="js-oxValidate js-oxValidate_notEmpty js-oxValidate_email" type="text" name="lgn_usr" value="[{ $oView->getActiveUsername() }]" size="37" >
<p class="oxValidateError">
<span class="js-oxError_notEmpty">[{ oxmultilang ident="EXCEPTION_INPUT_NOTALLFIELDS" }]</span>
<span class="js-oxError_email">[{ oxmultilang ident="EXCEPTION_INPUT_NOVALIDEMAIL" }]</span>
[{include file="message/inputvalidation.tpl" aErrors=$aErrors.oxuser__oxusername}]
</p>
[{/block}]
</li>
<span class="inputNote">[{ oxmultilang ident="FORM_FIELDSET_USER_data_privacy__MESSAGE" }]</span>
Aber wie mache ich jetzt aus dem textfeld eine checkbox die dann bei Nichtbeachten einen error (Meldung) ausgibt mit dem Wortlaut: Bitte die Datenschutzbestimmungen lesen und den Haken setzen um fortzufahren?
Super wäre natürlich wenn ich nur irgendwie auf die Fehlermeldungen der abs verweisen könnte, damit es schön einheitlich wirkt.
Super wäre natürlich wenn ich nur irgendwie auf die Fehlermeldungen der abs verweisen könnte, damit es schön einheitlich wirkt.