使用网络表单确认Magento中的电子邮件

时间:2015-03-25 17:50:22

标签: magento

我在Magento中使用了一个名为web-forms的扩展来创建我网站上的所有表单。我需要做的是添加电子邮件验证字段(用户必须输入两次电子邮件。两封电子邮件必须匹配)我该怎么做?我通过扩展看了看,但没有办法做到这一点。

看起来网络表单正在使用prototype.js进行验证。

2 个答案:

答案 0 :(得分:0)

我得到它,以防将来有人遇到同样的问题,并且在这里使用网络表单扩展是你如何做到的。

  1. 通过后端以magento-> web-forms-(您的表单名称)指定css类 - >确认电子邮件字段(如果您没有准备好,则应创建该字段)设计选项卡 - > Input元素的CSS类(将您的类名放在此处并记住它以后将使用它)
  2. 接下来在magento安装的根目录中打开validation.js文件。它位于js / prototype /
  3. 打开文件并在validate-email
  4. 之后粘贴以下代码

    
    
    ['[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);
    }],
    &#13;
    &#13;
    &#13;

    1. 保存并上传

      希望能帮助某些人解决同样的问题。

答案 1 :(得分:0)

在部分创建问题

之后,上面的代码无法正常工作
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是您在模板中定义的类。 像:

<input type="text" name="email-confirm" id="email-confirm" class="input-text required-entry validate-cemail"/>