파슬리를 사용하여 다중 단계 양식을 구현했으며 재구성을 검증해야합니다. 첫 번째 문제는 recaptcha가 recaptcha_get_html ($ publickey) 함수에 의해 생성되므로 입력 요소 내에 수동으로 속성을 추가 할 수 없다는 것입니다. recaptchaChallengeField 및 recaptchaResponseField :파슬리 원격 재구성 유효성 검사
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 파일을 두 개의 필드를 전달하는 데 필요한 검증을 수행하려면, 그럼에도 I는()과 같은 창로드() .attr 사용하여 다음 것을 해결.
제가 말했듯이 이것은 다중 단계 형식입니다 ... 양식을 검증하기 위해 "다음"버튼에이 로직을 첨부하고 다음과 같이 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는 동적입니다 ... 사용자가 "다음"버튼을 누를 때마다 값을 잡습니다. 나는 reCAPTCHA를 입력 내에서 뭔가를 입력 할 때 오류 메시지를 받게 해달라고 ...
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");
문제는 아무것도 안하고 있다는 것입니다 :
여기 내 PHP 코드입니다. 무엇이 문제 일 수 있습니까? 이미 parsley.remote.js (.addAsyncValidator)를 사용해 보았지만 아무것도 발생하지 않았습니다 ... 좀 도와주세요. Thx
아무도 도와 줄 수 없습니까? =/ – dan
'data-parsley-remote-options' 속성 내에''dataType ': "jsonp"'을 사용하고 있습니다. 나는 요청이 동일한 도메인에 대해 이루어진 것으로 가정하므로, 대신 그것을 'json'으로 변경해야합니다. 또한 몇 가지 추가 정보를 제공해야합니다. 요청이 성공적으로 이루어 졌습니까 (콘솔에 표시됩니까?)? 만약 당신이'var_dump ($ _ POST)'에 당신을 제외한 값을 포함하고 있다면? –