Muk*_*esh 3 magento magento-1.7
我在Form.php中有以下代码
$fieldset->addField('desc', 'textarea', array(
'label' => Mage::helper('module')->__('Description'),
'required' => true,
'name' => 'desc',
));
Run Code Online (Sandbox Code Playgroud)
如何限制此文本区域中的字符数?
Mar*_*ius 10
从理论上讲,您应该可以通过向textarea添加maxlength
属性来实现这一点.
所以你应该得到这样的东西:
<textarea maxlength="50"></textarea>
Run Code Online (Sandbox Code Playgroud)
但是Magento不允许这个maxlength
属性.
如果你看一下这个Varien_Data_Form_Element_Textarea
类(负责渲染textareas的那个),你会看到这个方法.
public function getHtmlAttributes()
{
return array('title', 'class', 'style', 'onclick', 'onchange', 'rows', 'cols', 'readonly', 'disabled', 'onkeyup', 'tabindex');
}
Run Code Online (Sandbox Code Playgroud)
这些是您在创建元素时可以指定的唯一选项.
第一个选项是扩展此类并maxlength
在允许的属性中添加,然后您的列可能如下所示:
$fieldset->addField('desc', 'textarea', array(
'label' => Mage::helper('module')->__('Description'),
'required' => true,
'name' => 'desc',
'maxlength' => 50
));
Run Code Online (Sandbox Code Playgroud)
第二个选项是通过一些javascript添加它.
$fieldset->addField('desc', 'textarea', array(
'label' => Mage::helper('module')->__('Description'),
'required' => true,
'name' => 'desc',
'after_element_html' => '<script type="text/javascript">Event.observe(window, "load", function() {$("id_of_textarea_here").setAttribute("maxlength", 50)})</script>'
));
Run Code Online (Sandbox Code Playgroud)
第三种选择是在一些限制文本长度的代码之上插入而不是javascript.
你可以在这里找到一个例子.
最后注意:
内容after_element_html
将显示在元素后面的表单中.所以你基本上可以放任何东西.
归档时间: |
|
查看次数: |
5232 次 |
最近记录: |