Cách giới hạn các ký tự trong system.xml cho textarea trong magento


7

Tôi muốn giới hạn độ dài ký tự textarea xuống 150 ký tự, Mã system.xml của tôi ở bên dưới:

...
<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>
...

Làm thế nào để điều đó?

Câu trả lời:


8

Thêm phần sau vào <orderPlaceMessage>phần tử:

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

Điều này sẽ thêm các lớp CSS xác thực này được sử dụng bởi nguyên mẫu. Nếu bạn nhập giá trị dài hơn, bạn sẽ thấy thông báo xác thực chung này:

Độ dài văn bản không thỏa mãn phạm vi văn bản đã chỉ định

Vì vậy, đó là một ý tưởng tốt để thêm một nhận xét cũng để cho người dùng biết phạm vi này là gì :

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

Nếu giới hạn là quan trọng đối với tính toàn vẹn dữ liệu, bạn cũng nên thêm xác thực phía máy chủ, sử dụng mô hình phụ trợ. Nghệ thuật piano kỹ thuật số đã liên kết một hướng dẫn cho việc này: http://alanstorm.com/magento_system_config_validation

Và nếu bạn muốn biết thêm về các tùy chọn khác nhau trong system.xml, thì có: http://alanstorm.com/magento_system_configuration_in_depth_tutorial


1

Xác nhận phía khách hàng:

Tôi nghĩ bạn phải sử dụng thẻ xác nhận và tạo thói quen xác thực của riêng bạn để giới hạn số lượng ký tự.

Hãy xem tại đây: http://blog.baobaz.com/en/blog/custom-javascript-form-validators

Xác thực phía máy chủ:

Thêm một chút mã và ngụ ý nhấp vào nút lưu trước khi xác thực dữ liệu: http://alanstorm.com/magento_system_config_validation


0

Tôi đã sử dụng tập lệnh jQuery bên dưới để giới hạn độ dài ký tự:

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));

}); 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.