2010-12-14 11 views
0

私は私のcaptcheオーバーレイを呼び出すためにjqueryの箱型を使用して: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それらを呼び出す...私は知っている...しかし、どのように私はさせることができますEnter Pressの "OK"イベントに電話してください。

あなたは答えを書いてEnterを押します。

アイデアをお持ちですか?

答えて

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/

:私は箱型のオブジェクトと​​リスナーの両方で呼び出すことができ、独自の方法にあなたの匿名のコールバックメソッドをリファクタリングしようとしたが、私はできませんでした「OK」ボタンをクリックするのと全く同じようなやり取りをしてください。