我在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?
答案 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()
检索组件
祝你好运