我想将textarea字符长度限制为150个字符,我的system.xml代码如下:

时间:2017-10-08 15:26:09

标签: magento

我想将textarea字符长度限制为150个字符,我的system.xml代码如下:

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

2 个答案:

答案 0 :(得分:1)

请在下面找到两种解决方案。

解决方案1: -

将以下内容添加到<orderPlaceMessage>元素:

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

这将添加prototype.js使用的这些验证CSS类。如果   输入更长的值,您将看到此通用验证   消息:

Text length does not satisfy specified text range

  

因此,添加评论也是一个好主意,让用户知道   这个范围

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

如果限制对数据完整性很重要,您还应该添加   服务器端验证,使用后端模型。数码钢琴已经   链接了一个教程:   http://alanstorm.com/magento_system_config_validation

     

如果您想了解更多有关各种选项的信息   system.XML,有:   http://alanstorm.com/magento_system_configuration_in_depth_tutorial

解决方案2: -

  

请在jQuery脚本下面使用限制字符长度:

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

}); 

我希望它对你有所帮助。

答案 1 :(得分:0)

您可以使用<validate>标记将textarea字符长度限制为150个字符。

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

您也可以添加评论,让用户知道所需的范围。