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

问题描述:

我想限制textarea的字符长度150个字符,我的system.xml代码如下:我想限制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> 
... 
+0

因为这是你的第一个问题,所以你可以阅读[提问问题指南](https://stackoverflow.com/help/how-to-ask),然后更新你的问题。 –

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

解决方案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)); 

}); 

我希望它对您有所帮助。

+0

请查看https://meta.stackoverflow.com/questions/312383/discussions-on-edit-review/312387#312387 - 特别是关于使用报价格式仅用于引号的部分.... –

+0

谢谢您的解释细节,为我工作得很好。@ Umesh –

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

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

您还可以添加评论以让用户知道期望的范围是什么。