使用 Web 表单在 Magento 中确认电子邮件
Confirm email in Magento using the Web-forms
我在 Magento 中使用一个名为 web-forms 的扩展来创建我网站上的所有表单。我需要做的是添加电子邮件验证字段(用户必须输入电子邮件两次。两个电子邮件必须匹配)我该怎么做?我查看了扩展名,但没有找到实现它的方法。
看起来网络表单正在使用 prototype.js 进行验证。
我知道了,以防将来有人遇到同样的问题,这里是使用网络表单扩展的方法。
- 通过 magento 中的后端分配 css class->web-forms-(您的表单名称)-> 确认电子邮件字段(如果您没有,则应创建该字段一切准备就绪)设计选项卡->CSS classes 用于输入元素(在这里输入您的 class 名称并记住它,您稍后将使用它)
- 接下来在 magento 安装的根目录中打开 validation.js 文件。位于 js/prototype/
- 打开文件并在验证电子邮件后粘贴下面的代码
['[your class name]', 'Please make sure your emails match.', function(v)
{
var conf = $$('.[your class name]')[0];
var pass = false;
if ($('email')) {
pass = $('email');
}
var emailElements = $$('.validate-email');
for (var i = 0; i < emailElements.size(); i++) {
var emailElement = emailElements[i];
if (emailElement.up('form').id == conf.up('form').id) {
pass = emailElement;
}
}
if ($$('.[your class name]').size()) {
pass = $$('.validate-email')[0];
}
return (pass.value == conf.value);
}],
保存并上传
希望对遇到同样问题的人有所帮助。
以上代码无法正常工作,以下部分正在创建问题
if ($$('.[your class name]').size()) {
pass = $$('.validate-email')[0];
}
在我这边,以下代码有效
if ($$('.validate-admin-email').size()) {
pass = $$('.validate-admin-email')[0];
}
所以完整的工作代码可以是:
['validate-cemail', 'Please make sure your emails match.', function(v) {
var conf = $$('.validate-cemail')[0];
var pass = false;
if ($('email')) {
pass = $('email');
}
var emailElements = $$('.validate-email');
for (var i = 0; i < emailElements.size(); i++) {
var emailElement = emailElements[i];
if (emailElement.up('form').id == conf.up('form').id) {
pass = emailElement;
}
}
if ($$('.validate-admin-email').size()) {
pass = $$('.validate-admin-email')[0];
}
return (pass.value == conf.value);
}],
.validate-cemail 是您在模板中定义的 class。
喜欢:
<input type="text" name="email-confirm" id="email-confirm" class="input-text required-entry validate-cemail"/>
我在 Magento 中使用一个名为 web-forms 的扩展来创建我网站上的所有表单。我需要做的是添加电子邮件验证字段(用户必须输入电子邮件两次。两个电子邮件必须匹配)我该怎么做?我查看了扩展名,但没有找到实现它的方法。
看起来网络表单正在使用 prototype.js 进行验证。
我知道了,以防将来有人遇到同样的问题,这里是使用网络表单扩展的方法。
- 通过 magento 中的后端分配 css class->web-forms-(您的表单名称)-> 确认电子邮件字段(如果您没有,则应创建该字段一切准备就绪)设计选项卡->CSS classes 用于输入元素(在这里输入您的 class 名称并记住它,您稍后将使用它)
- 接下来在 magento 安装的根目录中打开 validation.js 文件。位于 js/prototype/
- 打开文件并在验证电子邮件后粘贴下面的代码
['[your class name]', 'Please make sure your emails match.', function(v)
{
var conf = $$('.[your class name]')[0];
var pass = false;
if ($('email')) {
pass = $('email');
}
var emailElements = $$('.validate-email');
for (var i = 0; i < emailElements.size(); i++) {
var emailElement = emailElements[i];
if (emailElement.up('form').id == conf.up('form').id) {
pass = emailElement;
}
}
if ($$('.[your class name]').size()) {
pass = $$('.validate-email')[0];
}
return (pass.value == conf.value);
}],
保存并上传
希望对遇到同样问题的人有所帮助。
以上代码无法正常工作,以下部分正在创建问题
if ($$('.[your class name]').size()) {
pass = $$('.validate-email')[0];
}
在我这边,以下代码有效
if ($$('.validate-admin-email').size()) {
pass = $$('.validate-admin-email')[0];
}
所以完整的工作代码可以是:
['validate-cemail', 'Please make sure your emails match.', function(v) {
var conf = $$('.validate-cemail')[0];
var pass = false;
if ($('email')) {
pass = $('email');
}
var emailElements = $$('.validate-email');
for (var i = 0; i < emailElements.size(); i++) {
var emailElement = emailElements[i];
if (emailElement.up('form').id == conf.up('form').id) {
pass = emailElement;
}
}
if ($$('.validate-admin-email').size()) {
pass = $$('.validate-admin-email')[0];
}
return (pass.value == conf.value);
}],
.validate-cemail 是您在模板中定义的 class。 喜欢:
<input type="text" name="email-confirm" id="email-confirm" class="input-text required-entry validate-cemail"/>