Ich versuche, das Formular für die Erstellung von Kundenaccounts anzupassen, und ich möchte das gleiche Formular für verschiedene Arten von Kunden verwenden, d. H. Privat und Unternehmen. Was ich erreichen möchte, ist die Verwendung des gleichen Formulars für beide und zeigen verschiedene Felder nach der Wahl des Benutzers: wenn Benutzer 'privat' wählen, muss er einige Felder ausfüllen, wenn er 'Firma' auswählt, zusätzliche Felder - für Adresse und MwSt. werden angezeigt.Magento zeigen Adressfelder und validieren Registrierungsformular nur unter bestimmten Bedingungen
Also ich habe Adressfelder in der local.xml aktiviert und sie sind richtig angezeigt oder ausgeblendet, je nachdem, welche Taste (privat oder Firma) gewählt wird.
Das Problem ist, dass, wenn ich einfach die Adressfelder verstecken, Form auch auf diesen Feldern validiert ist, es sei denn ich eine
setzen$this->setShowAddressFields(false);
kurz vor dem
if($this->getShowAddressFields()): ?
Adressfelder zu verstecken und Validierung unterdrücken Ich habe auch <input type="hidden" name="create_address" value="0" /
> , um Adressfelder Validierung zu überspringen.
Also habe ich mit jquery versucht, die setShowAddressFields zu ändern, wenn der Benutzer auf die Schaltfläche klicken seinen Typ zu wählen, so etwas wie
$('#choose-type button').click(function(){
if($(this).val() == 'private'){
$(this).addClass('selected');
$('#choose-type button').last().removeClass('selected');
$('.required-company').removeClass('visible');
<?php $addrEnabled = $this->setShowAddressFields(false) ?>
}else{
$(this).addClass('selected');
$('#choose-type button').first().removeClass('selected');
<?php $addrEnabled = $this->setShowAddressFields(true) ?>
$('.required-company').addClass('visible');
}
});
habe ich auch versucht, zwei verschiedene Formen zu zeigen, in der gleichen Vorlage , eines mit $ this-> setShowAddressFields (false) und die andere mit $ this-> setShowAddressFields (true) und ein-/ausblenden die richtige Form, und bestätigen Sie mit Varien die richtige Form, wie diese
var dataForm = new VarienForm('form-validate', true);
var dataFormbis = new VarienForm('form-validate-bis', true);
aber immer noch kein Glück.
So ist es möglich, so etwas in der gleichen Vorlage zu erreichen, oder ich muss gezwungenermaßen zwei verschiedene Vorlagen erstellen?
haben Sie versucht, von CSS-Eigenschaft hinzufügen 'Anzeige: none' dem Element anstelle von' visibility'? –
gut die Klasse .visible in meinem Stylesheet setzt die Anzeige: keine zu diesen Elementen ohne die Klasse, also ja. – sissy