So begrenzen Sie Zeichen in system.xml für Textbereiche in Magento

7

Ich möchte die Länge der Textbereichszeichen auf 150 Zeichen beschränken. Mein system.xml-Code befindet sich unten:

...
<orderPlaceMessage translate="label">
    <label>Message for order place: </label>
    <frontend_type>textarea</frontend_type>
    <sort_order>1</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>

    {how to limit character length }

</orderPlaceMessage>
...

Wie geht das?

Vinaya Maheshwari
quelle

Antworten:

8

Fügen Sie dem <orderPlaceMessage>Element Folgendes hinzu :

<validate>validate-length maximum-length-150</validate>

Dadurch werden diese von prototype.js verwendeten Validierungs-CSS-Klassen hinzugefügt. Wenn Sie einen längeren Wert eingeben, wird diese generische Validierungsmeldung angezeigt:

Die Textlänge entspricht nicht dem angegebenen Textbereich

So ist es eine gute Idee , um einen Kommentar hinzuzufügen als auch die Benutzer wissen zu lassen , was dieser Bereich ist :

<comment>Maximum length: 150 characters</comment>

Wenn das Limit für die Datenintegrität wichtig ist, sollten Sie auch die serverseitige Validierung mithilfe eines Backend-Modells hinzufügen. Digital Pianism hat bereits ein Tutorial dazu verlinkt: http://alanstorm.com/magento_system_config_validation

Wenn Sie mehr über die verschiedenen Optionen in system.xml erfahren möchten, finden Sie Folgendes: http://alanstorm.com/magento_system_configuration_in_depth_tutorial

Fabian Schmengler
quelle
1

Client-seitige Validierung:

Ich denke, Sie müssen das Validierungs-Tag verwenden und Ihre eigene Validierungsroutine erstellen, um die Anzahl der Zeichen zu begrenzen.

Schauen Sie hier: http://blog.baobaz.com/de/blog/custom-javascript-form-validators

Serverseitige Validierung:

Ein bisschen mehr Code und impliziert das Klicken auf die Schaltfläche Speichern, bevor die Daten überprüft werden: http://alanstorm.com/magento_system_config_validation

Raphael beim digitalen Pianismus
quelle
0

Ich habe unten jQuery-Skript für die Begrenzung der Zeichenlänge verwendet:

jQuery("#sms_cnfg_advanced_settings textarea").keypress(function(event){
    var maxLength = 160;
    var length = this.value.length;
    if (length >= maxLength)
     {
        this.value = this.value.substring(0, maxLength);
        alert(maxLength + ' characters allowed, excess characters trimmed');
     }
});

jQuery("#sms_cnfg_advanced_settings textarea").on('keyup',function(){
    jQuery('.charnum').remove();
    var maxLength = 160;
    var length = this.value.length;

     var count=maxLength-length;
     jQuery('<span class="charnum">' +count+' Characters left</span>').insertAfter(jQuery(this));

}); 
Vinaya Maheshwari
quelle