0

jquery boxy を使用してキャプチャ オーバーレイを呼び出します。

<script>
$(document).ready(function()    {
    var zahl1 = Math.floor(Math.random()*11);
    var zahl2 = Math.floor(Math.random()*31);

    //$("#cap").html("Wie viel ist "+zahl1+" + "+zahl2+"? <input type='text' id='answer' />");

    $("#shortbutton").live("click", function()  {
        ask();
        return false;
    });
});

function ask()
{
    zahl1 = Math.floor(Math.random()*11);
    zahl2 = Math.floor(Math.random()*31);
    var sum = zahl1 + zahl2;
    new Boxy.ask("Wie viel ist "+zahl1+" + "+zahl2+"? <input type='text' id='answ' />", 
        ["Ok"], 

        function(val) {

            if($("#answ").val() == (zahl1 + zahl2))
            {
                $("#form").submit();
            }
            else
            {
                ask();
                return false;
            }
        },

        {title: "Captcha"}
    );
}
</script>

コードは少し汚れています...関数はそれらをselftsと呼びます...知っています...しかし、Enterキーを押すと「OK」イベントを呼び出すにはどうすればよいですか...

答えを書いて Enter キーを押すと、チェックされます。

アイデアはありますか?

4

1 に答える 1

1

ボックスの「OK」ボタンをプログラムでクリックできます。

$("#answ").live("keydown", function(event) {
    if (event.which === 13) {
        $(this)
            .parent()
            .siblings("form")
            .children("input:button").click();
    }
});

live入力がいつ作成されたかに関係なく、イベントをリッスンするために使用します。タイプボタンの入力が複数ある場合(たとえば、「キャンセル」ボタンを追加する場合)、Enterキーのチェックの下でセレクターを変更する必要がある場合があります。

ここで実際の例を確認してください: http://jsfiddle.net/andrewwhitaker/Z2qeh/

: 匿名のコールバック メソッドを、Boxy オブジェクトとリスナーの両方から呼び出すことができる独自のメソッドにリファクタリングしようとしましたkeydownが、[OK] ボタンをクリックした場合とまったく同じ相互作用を得ることができませんでした。

于 2010-12-14T17:55:10.713 に答える