jCaptcha - обновить только изображение, а не всю страницу - PullRequest
2 голосов
/ 28 апреля 2011

Я использую jCaptcha (http://jcaptcha.sourceforge.net/) на нашем веб-сайте. Проблема в том, что иногда очень трудно прочитать изображение. Поэтому мы планируем предоставить кнопку с именем «ОБНОВИТЬ» рядом с изображением jcaptcha и после нажатия кнопки ОБНОВИТЬ кнопка, она должна обновлять только изображение jcaptcha, а не всю страницу / портлет. Как мы можем это сделать?

Ответы [ 5 ]

2 голосов
/ 16 июня 2015

Внесите изменения в JSP:

<img src="jcaptcha" id="captcha_image"/> <a href="#" onclick="reloadCaptcha()" alt="reload"width="40" height="40">Refresh</a> 

Добавьте функцию Javascript, например:

function reloadCaptcha(){
        var d = new Date();
        $("#captcha_image").attr("src", "jcaptcha?"+d.getTime());
    }
2 голосов
/ 05 сентября 2012

Вот как я решил это с помощью JQuery, он заменит изображение. Функция alert () предназначена для демонстрации нового имени файла и, конечно, может быть удалена. Код использует плагин jquery в grails, но показывает, что делать в jquery для обновления изображения.

<div>
<jcaptcha:jpeg name="captchaImage"/>

<a href="#" id="refreshCaptcha">Refresh captcha</a>
<jq:jquery>
   $("#refreshCaptcha").click(function() {
      $("#captchaImage").fadeOut(500, function() {
         var captchaURL = $("#captchaImage").attr("src");
         captchaURL = captchaURL.replace(captchaURL.substring(captchaURL.indexOf("=")+1, captchaURL.length), Math.floor(Math.random()*9999999999));
         alert(captchaURL);
         $("#captchaImage").attr("src", captchaURL);
      });
      $("#captchaImage").fadeIn(300);
});
</jq:jquery>
</div>
0 голосов
/ 15 мая 2014

это работает нормально, потому что я реализовал это в своем проекте, просто создайте одну кнопку, нажав на эту кнопку, она окажется ниже выделенного блока кода, как вы делаете

<script type="text/javascript">
function refresh() 
{
var image=document.getElementById("kaptchaImage");
image.src="<%=request.getContextPath()%>/kaptcha.jpg?"+Math.floor(Math.random()*100)           
}
</script>
0 голосов
/ 01 апреля 2012

Установите идентификатор для тега img и дайте ему вызвать функцию javascript:

<img src="jcaptcha.jpg" id="captchaImage"/>

функция JavaScript:

<script type="text/javascript">
    function refresh() 
    {
        var captchaImage=document.getElementById("captchaImage");
        captchaImage.src="jcaptcha.jpg";    
    }
</script>
0 голосов
/ 26 июня 2011

Вы должны загрузить изображение и кнопку обновления в. Чем вы сможете обновить только iframe. Но я не знаю, как вы делаете свою проверку так.

...