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 Press上调用“OK”事件......

因此,您写下答案并按 Enter... 并检查。

有什么想法吗?

4

1 回答 1

1

您可以以编程方式单击框上的“确定”按钮:

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

无论live何时创建输入,都用于监听事件。如果您有多个输入类型按钮(例如,如果添加“取消”按钮),您可能必须在检查回车键下修改选择器。

在这里查看一个工作示例:http: //jsfiddle.net/andrewwhitaker/Z2qeh/

注意:我尝试将您的匿名回调方法重构为它自己的方法,该方法可以由 Boxy 对象和keydown侦听器调用,但我无法获得与单击“确定”按钮完全相同的交互。

于 2010-12-14T17:55:10.713 回答