我使用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键......然后检查。
有个主意吗?
答案 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
侦听器调用,但我无法完成交互与单击“确定”按钮相同。