jQuery boxy问题

时间:2010-12-14 15:26:14

标签: jquery boxy

我使用jquery boxy来调用我的captche叠加层:

<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键......然后检查。

有个主意吗?

1 个答案:

答案 0 :(得分: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侦听器调用,但我无法完成交互与单击“确定”按钮相同。