magento后台表单支持autocomplete=off属性

出于安全考虑,公司后台的账户过段时间就会强制要求重新修改一次密码,公司很多同事修改密码后发现后台不能登录了,查了下用户信息发现不能登录的账号修改密码后用户名变成了邮箱,有的变成了手机号,导致用原来的用户名不能登录。

简单分析了一下,是浏览器自动填充的,为了杜绝后患,我打算把这里填用户信息的表单的autocomplete禁用掉

magento后台的form element,以text为例,只支持type, title, class, style, onclick, onchange, onkeyup, disabled, readonly, maxlength, tabindex这些属性的配置,这里新加一个autocomplete,配置后台表单的时候,加'autocomplete' => 'off',如果没有此配置,默认是on的。

整的一段代码作为例子

<!-- lang: php -->
$fieldset->addField('name', 'text', array(
    'name' => 'tag_name',
    'label' => Core::helper('tag')->__('Tag Name'),
    'title' => Core::helper('tag')->__('Tag Name'),
	'autocomplete' => 'off',
    'required' => true,
    'after_element_html' => ' ' . Core::helper('adminhtml')->__('[GLOBAL]'),
));

解释一下,magento后台的表单元素最终是通过$_element->getElementHtml()输出的

<!-- lang: php -->
public function getElementHtml()
{
    $html = '<input id="'.$this->getHtmlId().'" name="'.$this->getName()
         .'" value="'.$this->getEscapedValue().'" '.$this->serialize($this->getHtmlAttributes()).'/>'."\n";
    $html.= $this->getAfterElementHtml();
    return $html;
}

public function getHtmlAttributes()
{
    return array('type', 'title', 'class', 'style', 'onclick', 'onchange', 'disabled', 'readonly', 'tabindex');
}

所以只需要给form element的getHtmlAttributes()方法添加autocomplete支持就可以了,getElementHtml()的时候会通过$this->serialize()生成表单元素内容。 我的问题是输入框自动填充造成的,所以里只我修改了Varien_Data_Form_Element_Text

转载于:https://my.oschina.net/pulading1988/blog/272631

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值