- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用欧芹实现了一个多步骤表单,我需要验证验证码。第一个问题是 recaptcha 是由函数 recaptcha_get_html($publickey) 生成的,因此我无法在 input 元素中手动添加属性。尽管如此,我还是通过在 window.onload() 上使用 .attr() 解决了这个问题,如下所示:
window.onload = function() {
$("#recaptcha_response_field").attr('data-parsley-group','block1');
$("#recaptcha_response_field").attr('data-parsley-required','true');
$("#recaptcha_response_field").attr('data-parsley-remote-message','Wrong Captcha');
$("#recaptcha_response_field").attr('data-parsley-remote','lib/validateRecaptcha.php');
};
为了完成验证,我需要向 php 文件传递两个字段:recaptchaChallengeField 和 recaptchaResponseField。
正如我所说,这是一个多步骤表单...因此为了验证表单,我将此逻辑附加到“下一步”按钮,并添加了 data-parsley-remote-options,如下所示:
$('.next').on('click', function () {
var current = $(this).data('currentBlock'),
next = $(this).data('nextBlock');
$("#recaptcha_response_field").attr('data-parsley-remote-options','{"type": "POST", "dataType": "jsonp", "data": {"recaptchaChallengeField": "'+$("#recaptcha_challenge_field").val()+'", "recaptchaResponseField": "'+$("#recaptcha_response_field").val()+'"}}');
// only validate going forward. If current group is invalid, do not go further
// .parsley().validate() returns validation result AND show errors
if (next > current)
if (false === $('#signup-form').parsley().validate('block' + current))
return;
// validation was ok. We can go on next step.
$('.block' + current)
.removeClass('show')
.addClass('hidden');
$('.block' + next)
.removeClass('hidden')
.addClass('show');
});
如您所见,recaptchaResponseField 是动态的...每次用户按下“下一步”按钮时我都会捕获该值。
这是我的 php 代码:
require_once('recaptcha-php-1.11/recaptchalib.php');
$privatekey = "private_key";
$resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptchaChallengeField"], $_POST["recaptchaResponseField"]);
if (!$resp->is_valid)
echo json_encode("404");
else
echo json_encode("200");
问题是它没有做任何事情...在 recaptcha 输入中输入内容时我没有收到任何错误消息。可能是什么问题?我已经尝试使用 parsley.remote.js (.addAsyncValidator) 但也没有发生任何事情......我需要一些帮助。谢谢
最佳答案
我认为您的问题与验证码生成有关。以下行不起作用:
$("#recaptcha_response_field").attr('data-parsley-group','block1');
$("#recaptcha_response_field").attr('data-parsley-required','true');
$("#recaptcha_response_field").attr('data-parsley-remote-message','Wrong Captcha');
$("#recaptcha_response_field").attr('data-parsley-remote','lib/validateRecaptcha.php');
这些属性不与 #recaptcha_response_field 关联,因为该字段是在这些调用之后创建的。您可以查看页面源代码。
一种选择是定义新的自定义主题,以避免自动生成 HTML 代码。 https://developers.google.com/recaptcha/docs/customization?hl=fr
关于javascript - Parsley 远程验证码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25596024/
我还有其他自定义验证器。当 Parsley 验证使用它们时,它会根据需要添加 CSS 类 parsley-success 或 parsley-error。如果only验证器是我的自定义验证器之一,它们
我正在寻找一种对一组输入字段使用单个欧芹验证错误消息的方法。这方面的主要示例是地址输入字段,但我相信其他人可以想出类似的示例,这可能会有用。 现在使用上面的代码会导致 3 条不同的错误消息,但
我有最简单的表单和最简单的自定义验证器,但它不起作用,请参阅 http://jsfiddle.net/M55M4/怎么了? $('#myform').parsley({
如何告诉 parsley-Instance 排除不可见的表单元素? 我在文档中找到了这个: data-parsley-excluded="input[type=button], input[type=
我的 2 个元素有 2 个欧芹配置。 A.xml B.xml 我的问题是如何使两个配置中的“
我已经排除了一个输入,并且它添加了成功类(我不介意)$('form').parsley({ 排除: '[data-parsley-sum-total="all"]' });但还有许多其他输入没有验证,
我正在尝试在验证了两个特定字段后删除表单上的验证消息。 我可以在一个字段成功验证时执行此操作,但当多个字段(甚至可能是一组)已被验证时我将如何执行此操作? 下面是我想要完成的 $.listen('pa
我有一个包含时间输入的表格。时间输入被破坏,因为我有欧芹验证。该框架在输入下采用 -Tag 进行验证。这个 -Tag 破坏了我的 html/css 结构。 看这里我的问题: 我想要这个结构: 这是我的
当我检查我的表单时,它在控制台中显示“Y”。但是我没有选择任何复选框。 在官方文件中,它说: checkbox need to have either a name or an id attribut
我正在使用 Parsley.js 来验证表单。我的要求是我不能显示错误信息。我只需要突出显示输入字段或选择元素的边框。当 data-parsley-errors-messages-disabled 出
我对Parsley.js框架有疑问。 我的问题是密码和密码确认输入相同,但是如果单击提交按钮,我会收到一条错误消息。 这是我的测试站点: http://topkosmetikstudios.de/re
我正在使用 Parsley.js用于验证项目的表单提交。我的需求之一是让 Parsley 要求三个字段中至少有一个包含数据,并且只有在三个字段都没有数据时才会失败验证。 我从文档中不确定如何完成此操作
我需要访问正在欧芹自定义验证器中测试自定义规则的元素。换句话说,我需要这样的东西: window.Parsley.addValidator('uniqueInn', { validateStr
我有以下输入字段: 以及以下脚本: jQuery('#UserLogin').parsley().addAsyncValidator('validateUsername', function (xh
我需要访问正在欧芹自定义验证器中测试自定义规则的元素。换句话说,我需要这样的东西: window.Parsley.addValidator('uniqueInn', { validateStr
我使用欧芹实现了一个多步骤表单,我需要验证验证码。第一个问题是 recaptcha 是由函数 recaptcha_get_html($publickey) 生成的,因此我无法在 input 元素中手动
我有一个包含两组字段的表单: “联系方式”(17 个字段) “公司信息”(5个字段) 有一个 radio 问“你有公司吗?”与公司信息有关。如果单选为"is",则必须填写并验证公司字段。如果单选为“否
是否可以使用 Parsley 添加自定义多重验证(即依赖于多个输入的单一验证)? 我有时想验证 或整个部分并在该级别而不是在 提供错误等级。 例如,想象一个带有 的表单。允许用户输入颜色和尺寸的不
Email address $(function(){ $('#f').parsley('validate');
parsleyjs是否有一种简单的方法可以根据另一个字段来创建一个必填字段? 在这里看到我的js fiddle http://jsfiddle.net/marksteggles/wbhLq0t4/1/
我是一名优秀的程序员,十分优秀!