【发布时间】:2014-02-27 23:28:39
【问题描述】:
我需要更改 Magento 结帐页面的电子邮件验证(以访客身份结帐)。
问题是输入框的默认样式只包含字符支持。当我尝试输入带有数字的电子邮件时,它不接受并显示数字。
所以我需要对其电子邮件进行适当的验证。电子邮件地址输入框也应该接受带数字的字符。
谢谢,
我尝试检查此代码:
文件位置:onepage/billing.phtml
<?php if(!$this->isCustomerLoggedIn()): ?>
<div class="field">
<label for="billing:email" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
<div class="input-box">
<input type="text" name="billing[email]" id="billing:email" value="<?php echo $this->escapeHtml($this->getAddress()->getEmail()) ?>" title="<?php echo $this->__('Email Address') ?>" class="input-text validate-email required-entry" />
</div>
</div>
<?php endif; ?>
文件位置:validation.js
['validate-email', 'Please enter a valid email address. For example johndoe@domain.com.', function (v) {
//return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)
//return Validation.get('IsEmpty').test(v) || /^[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9][\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9\.]{1,30}[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9]@([a-z0-9_-]{1,30}\.){1,5}[a-z]{2,4}$/i.test(v)
return Validation.get('IsEmpty').test(v) || /^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i.test(v)
}],
【问题讨论】:
-
你输入的是什么email-id?
-
以访客身份结帐时,可以使用电子邮件 ID sample123@yahoo.com。输入类型应该是 您是否对验证脚本进行了任何自定义更改?
-
还是不行。我认为软件供应商定制了它。我曾经检查validation.js 以及billing.phtml 文件;无法弄清楚他覆盖的代码。除此之外,有没有办法覆盖验证?
标签: validation magento email email-validation php