2010-12-14 40 views
0

使用jQuery的四四方方打電話給我captche覆蓋我:jQuery的四四方方的問題

<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 ...我知道...但我怎麼才能讓在輸入新聞中輸入「OK」事件...

因此,您編寫答案並按Enter鍵並檢查。

有一些想法嗎?

回答

1

您可以以編程方式點擊包裝盒上的「確定」按鈕:

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

使用live創建輸入時,監聽事件沒有關係。如果您有多個輸入類型按鈕(例如,如果添加了「取消」按鈕),則可能必須在對輸入鍵的檢查下修改選擇器。

退房工作的例子在這裏:http://jsfiddle.net/andrewwhitaker/Z2qeh/

注意:我試圖重構你的匿名回調方法變成自己的方法,可以通過四四方方的對象和​​聽衆都被調用,但我不能獲得與點擊「確定」按鈕完全相同的交互。