3

CAPTCHAにSecurimagePHPスクリプト(cf google)を使用しようとしていますが、問題があります。[別の画像]リンクを押すと(別のキャプチャを表示するため)、のフィールドに入力されたすべてのテキストが失われます。私のPHPフォーム。そのため、ユーザーはすべてを再入力する必要があり、これには問題があります。

これがコードです。注:何らかの理由でキャプチャ画像の変更に失敗したため、hrefの「#」を削除しました。誰かが理由を知っていますか?(これはSafariとFirefoxの両方で発生します)

<img id='captcha' src='/myproject/securimage/securimage_show.php' alt='CAPTCHA Image' /><br> <a href='' onclick='document.getElementById('captcha').src =  '/securimage/securimage_show.php?' + Math.random(); return false'> [Different Image ]</a>
4

2 に答える 2

1

href から「#」を削除したため、リンクをクリックするとページ全体が更新され、すべてのフィールド データが失われます。削除しないで、次のコードを使用してください

<img id='captcha' src='/myproject/securimage/securimage_show.php' alt='CAPTCHA Image' />
<br> 
<a href="#" onclick="document.getElementById('captcha').src =  '/securimage/securimage_show.php?' + Math.random(); return false;"> [Different Image ]</a>
于 2012-06-05T10:41:07.283 に答える
1

「#」を削除したためではありません。<a>タグ内で間違った引用符を使用したため、ページが再読み込みされます。'html 属性および 内に含まれる javascript に一重引用符を使用すると、ブラウザはonclick イベントonclickにのみ使用します。document.getElementById(return false;実行されず、ページがリロードされます。

"html 属性と'javascriptにはいつでも使用できます。または、属性内の同じ引用符を . でエスケープします\

これは「#」がなくても機能します。

<a href="" onclick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false;"> [Different Image ]</a>

またはそれのエスケープされたバージョン:

<a href='' onclick='document.getElementById(\'captcha\').src = \'/securimage/securimage_show.php?\' + Math.random(); return false;'> [Different Image ]</a>
于 2012-06-05T11:18:52.653 に答える