문제점 : 각 의견 상자에 '답장'버튼이있는 의견 페이지가 있습니다. 이제 응답 단추에는 jquery 실시간 클릭 바인딩이 있습니다.이 단추를 누르면 트리거 될 때 ajax를 통해 적절한 주석 양식이로드됩니다. 일반적인 필드 외에도 각 양식에는 captcha 입력이 포함되어 있습니다. 양식이 성공적으로 (또는 기타) 제출 후, 난과 같이, 보안 문자를 새로 고침 :Captcha가있는 다중 양식 - Ajax 오류 오류
// submit triggered and form serialized
$.ajax({
type: 'POST',
url: myaction,
data: serializedForm,
cache: false,
success: function(data, status) {
//checks errors from server
$servererr = $(data).find('.error_list');
if($servererr.length === 0)
{
//flash success message...
//refresh captcha
$thisform.find('.captcha_img_refresh').trigger('click.refresh');
}
else {
//flash the server errors and then refresh captcha
$thisform.find('.captcha_img_refresh').trigger('click.refresh');
}
});
지금은 말하자면, 2 개 개의 다른 동작을 갖는 동일한 페이지 (열려 2 개 신선한 코멘트 (F1 및 F2) 형태를 가지고/post/f1 및 post/f2). f1을 제출하고 오류가보고되지 않았습니다. 그런 다음 두 번째 양식으로 이동하여 모든 유효한 세부 정보를 입력하면 서버에서 captcha 오류가 발생합니다 (위의 else ajax 문이 실행됩니다). 방화 광은 다음을 표시합니다 :
> //for first form
> POST http://mysite.com/post/f1 302 Found 111ms
> GET http://mysite.com/post/f1 200 OK 600ms
>
> //for 2nd form
> POST http://mysite.com/post/f2 200 OK 800ms
왜 이런 일이 발생합니까? 다른 모든 것은 괜찮아 보입니다 (자바 스크립트가 해제 된 상태에서도 양식을 제출하는 데 문제가 없습니다).
양식 HTML :
<form id="comment-form-<unique-number>" class="comment-form-new" action="/post/<separate-action>" method="post" style="">
<p>Leave a comment:</p>
<ul>
<li>
<textarea rows="10" cols="71" name="myform[text]" id="myform_text"></textarea></li>
<li>
<label for="myform_username">Name (required)</label>
<input type="text" name="myform[username]" value="Anonymous" id="myform_username" /></li>
<li>
<label for="myform_email">Email (required)</label>
<input type="text" name="myform[email]" value="" id="myform_email" />
</li>
<li>
<label for="myform_captcha">Please enter code shown below:</label>
<input type="text" name="myform[captcha]" id="myform_captcha" />
</li>
<li>
<img id="captcha_img" src="/mysite/captcha/126263" alt="Captcha Image">
<!-- this refreshes captcha -->
<a class="captcha_img_refresh" id="captcha_img_refresh"><img src="/images/reload_original.png" /></a>
</li>
<input type="hidden" name="myform[comment_id]" value="10" id="myform_comment_id" />
<li>
<input type="submit" value="Submit" id="comment-form-submit" />
</li>
</ul>
기타 자세한 사항 : 각 주석 양식을로드 한 후, 난 (바인딩 살)이 구속력을 제출할 정상 않습니다. 각 양식의 값은 콘솔 로그를 통해 확인할 수있는 입력란에 일련 화되고 보내집니다. captcha에 Cryptographp 라이브러리 (http://www.captcha.fr/)를 사용하고 있습니다.
답 : 한 양식을 제출 한 후 페이지의 모든 양식에있는 모든 captcha를 새로 고치면 일부 자국은 물론 새로 고침 단추를 다시 클릭하여 사용자가 수정할 수있는 오류 이미지를 표시합니다. 그러나 나는이 대안 이외의 다른 것을 찾고있다.
양식을 설정하는 방법을 보여주는 HTML을 추가 할 수 있습니까? 그러면 문제를 추적하는 데 도움이됩니다. –