제출할 때 데이터베이스에 데이터를 삽입하는 주석 형식이 있습니다. 다음은 코드입니다.reCAPTCHA로 jquery를 사용하여 입력 양식 유효성 확인
function reloadRecaptcha() {
var publicKey = "*************************************";
var div = "recap";
Recaptcha.create(publicKey,div,{theme: "white"});
return false;
}
function validateForm() {
var x=document.forms["cmnts"]["name"].value;
if (x==null || x=="") {
jAlert('Please enter your name', 'Error');
return false;
}
var x=document.forms["cmnts"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) {
jAlert('Please enter a valid email address', 'Error');
return false;
}
var x=document.forms["cmnts"]["comment"].value;
if (x==null || x=="") {
jAlert('Please enter a comment', 'Error');
return false;
}
var challenge = Recaptcha.get_challenge();
var response = Recaptcha.get_response();
$.ajax({
type: "POST",
url: "includes/valrecaptcha.php",
async: false,
data: {
challenge: challenge,
response: response
},
success: function(resp) {
if(resp == "false") {
jAlert('Please enter captcha words correctly', 'Error');
reloadRecaptcha();
}
}
});
}
모든 (형태의 검증 내가 submit
버튼을 누르면 경우를 제외하고 잘 작동과 같은 코멘트는 상관없이 reCAPTCHA를가 올바른지 여부. 페이지가 내가 경고 메시지를 참조하십시오 탐색 시작 직전. I을 게시 .
<h4>Leave your comment</h4>
<form action="blog?post=".$_GET["post"]."#comments" onsubmit="return validateForm();" name="cmnts" method="post">
<div class="form_row">
<label>Name</label><br />
<input type="text" class="tbox" name="name" title="Type your name"/>
</div>
<div class="form_row">
<label>Email (not visible to others)</label><br />
<input type="text" class="tbox" name="email" title="Type your email" />
</div>
<div class="form_row">
<label>Comment</label><br />
<textarea name="comment" class="tbox" rows="6" title="Type your comment" ></textarea>
<p>You may use following HTML tags and attributes: <b> <cite> <del> <i> <u></p>
</div>
<div class="form_row" style="height:80px;">
<label>Captcha</label><br />
<div id="recap"></div>
<p>I must make sure that you're <i>not</i> a spammer or a bot</p>
<div style="clear:both;">
</div>
<input value="Comment" id="submit" name="submit" class="submit_btn float_l" type="submit">
</form>
<body>
태그는 왜 안 형태로 서브를 얻을 않습니다 return reloadRecaptcha();
있도록 onload 이벤트를 가지고, '다음과 같은 경고 메시지를 표시 jAlert
을 사용하고 있습니다 양식입니다 reCAPTCHA를 확인하기 전에 을 전에 확인 하시겠습니까?
감사합니다 !! 그것은 일했다!! – Sid
정말 좋았어 !! – Rajesh
@Rajesh : 비동기 메서드를 사용하는 경우 success 메서드에서 값을 설정하기 전에 isCaptchaValidated가 반환됩니다. – Terry