如何在extjs的视图窗体中包含javascript

时间:2013-01-09 06:26:38

标签: javascript extjs view captcha

我在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字段在我的注册表单中包含这个javascript验证码。那么如何在extjs视图表单项元素中包含javascript?

1 个答案:

答案 0 :(得分: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()检索组件 祝你好运