1

キャプチャを使用して、自分のサイトで連絡先フォームを開発しています。例を次に示します。

お問い合わせフォーム

数年前、ユーザーがキャプチャ画像をリロードする必要があった場合、私にはフォーム全体をリロードするしかありませんでした。

jquery を使い始めたので、このメソッドを画像を更新するだけのメソッドに置き換える時が来ました。

だから私はこの小さな断片を書きました:

$(document).ready(function() {
    $('#creload').click(function() {
        $.ajax({
            type: "POST",
            url: "/en/KDpg_Captcha.html",
            async: true,
            success: function(ret) {
                $('#cimg').attr('src', ret);
            }
        });
    });
});​

ここ#creloadで、 はリロードを要求するリンク#cimgの ID であり、実際の画像の ID です。

私が発見したのは、他のフォーム フィールドに入力してリロードを要求すると、他のフィールドがリセットされるということです。これは望ましい結果ではありません。

何が欠けている可能性がありますか?

4

2 に答える 2

2

#creload がリンクの場合、href 属性にあるものを開くというデフォルトのアクションを実行しないようにする必要があります。e.preventDefault()を追加すると、これが停止します。eを引数として追加することを忘れないでください:

$('#creload').click(function(e) {
    e.preventDefault();
    // ...
于 2012-04-13T18:37:56.653 に答える
2

次のリンクをクリックすると:

<a href id="creload">here</a>

現在のページは として解釈されhref、ページがリロードされます。

function(e)TJ が説明するようにハンドラーにande.preventDefault()を追加するclickか、より簡単にリンクを次のように変更することで、プログラムでこれを防ぐことができます。

<a href="#" id="creload">here</a>

#または、リンクで訪問者をページのトップに移動させたくない場合:

<a href="javascript:" id="creload">here</a>
于 2012-04-13T18:39:10.130 に答える