我在Magento中使用了一个名为web-forms的扩展来创建我网站上的所有表单。我需要做的是添加电子邮件验证字段(用户必须输入两次电子邮件。两封电子邮件必须匹配)我该怎么做?我通过扩展看了看,但没有办法做到这一点。
看起来网络表单正在使用prototype.js进行验证。
答案 0 :(得分:0)
我得到它,以防将来有人遇到同样的问题,并且在这里使用网络表单扩展是你如何做到的。
['[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;
保存并上传
希望能帮助某些人解决同样的问题。
答案 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"/>