1

私はextjsで働いています。extjs形式でキャプチャコードを生成したい。だから私はコードを持っているjavascriptを使用してキャプチャコードを作成しています-

   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
     <title>BotBoot</title>

         <script type="text/javascript">
         var a = Math.ceil(Math.random() * 10);
         var b = Math.ceil(Math.random() * 10);       
         var c = a + b
         function DrawBotBoot()
        {
         document.write("What is "+ a + " + " + b +"? ");
         document.write("<input id='BotBootInput' type='text' maxlength='2'    size='2'/>");
        }    
        function ValidBotBoot(){
        var d = document.getElementById('BotBootInput').value;
        if (d == c) return true;        
        return false;

     }
     </script>

     </head>
     <body>

      Are you human?<br />

       <script type="text/javascript">DrawBotBoot()</script>
       <input id="Button1" type="button" value="Check"  onclick="alert(ValidBotBoot());"/>

      </body>
      </html>

その正しく動作します。しかし今、私はxtypeフィールドに言及することにより、itemsブロック内の登録フォームにこのjavascriptキャプチャを含めたいと思います。では、JavaScriptをextjsビューフォームのアイテム要素に含めるにはどうすればよいですか?

4

1 に答える 1

1

テキストフィールドとボタンに加えて、次のようなカスタムクラスを作成する必要があります。あなたがそれを実装するならば、あなたはそれをで使うことができますxtype: 'captcha'

Ext.define('My.Captcha', {
    extend: 'Ext.container.Container',
    alias: 'widget.captcha',

    initComponent: function(config){
        this.a = Math.ceil(Math.random() * 10);
        this.b = Math.ceil(Math.random() * 10);       
        this.c = this.a + this.b;
    },

    DrawBotBoot: function(){
      //custom logic
    },

    ValidBotBoot: function(){
      //custom logic
    }
});

入力でIDを使用する場合はExt.getCmp()、コンポーネントを取得するために使用できます。
幸運を

于 2013-01-09T07:39:09.743 に答える