我只需要验证一个字段(称为“实例”)以仅接受小写 ASCII 字母和数字,第一个字符也必须是字母而不是数字。它会接受大写字符,但我们需要它在输入时将它们小写。因此,如果有人使用实例名称 McDonalds,它将小写为 mcdonalds(不仅仅是 CSS)。空格也是不允许的。
CF7 可以做到这一点吗?如果是这样,请解释一下如何。
我已经尝试过了this http://code-tricks.com/contact-form-7-custom-validation-in-wordpress自定义验证方法,但即使使用文件中预设的自定义验证,它也只是显示字段短代码而不是字段本身。
Thanks
From contactform7.com http://contactform7.com/2015/03/28/custom-validation/ on 自定义验证 → 作为过滤器的验证:
在联系表单 7 中,用户输入验证作为过滤器实现
功能。用于验证的过滤器挂钩因不同而异
form-tag 的类型,确定为: wpcf7_validate_ + {type of
表单标签}。因此,对于文本表单标签,过滤器钩子
使用 wpcf7_validate_text。同样,使用 wpcf7_validate_email*
用于电子邮件* 表单标签。
假设您的表单中有以下电子邮件字段:
Email: [email* your-email]
Confirm email: [email* your-email-confirm]
以下清单显示了验证两个字段是否
具有相同的值。
add_filter('wpcf7_validate_email*', 'custom_email_confirmation_validation_filter', 20, 2);
function custom_email_confirmation_validation_filter($result, $tag) {
$tag = new WPCF7_FormTag($tag);
if ('your-email-confirm' == $tag->name) {
$your_email = isset($_POST['your-email']) ? trim($_POST['your-email']) : '';
$your_email_confirm = isset($_POST['your-email-confirm']) ? trim($_POST['your-email-confirm']) : '';
if ($your_email != $your_email_confirm) {
$result->invalidate($tag, "Are you sure this is the correct address?");
}
}
return $result;
}
两个参数将传递给过滤器函数:$result
and
$tag
. $result
是一个实例WPCF7_Validation
管理一个类
验证过程的顺序。$tag
是一个关联数组
由给定的表单标签组件组成;正如你在前面看到的
食谱,你可以使用WPCF7_FormTag
类来处理这种类型的数据。
仔细看一下filter函数的内部。首先,检查名称
表单标签以确保验证仅应用于
特定领域(your-email-confirm
).
然后比较两个电子邮件字段值,如果不匹配,$result->invalidate()
将被调用。您需要传递两个参数
到invalidate()
方法:第一个参数应该是$tag
变量,第二个参数是验证错误信息
您希望该字段显示的内容。
最后,别忘了归还$result
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)