2015-12-17 33 views
0

我制作一个名为'nama'的文本框和按钮'ayo'。当文本字段为空时,我想让按钮禁用。但是,当我尝试此代码我的按钮不禁用,仍然工作。我希望在文本框填充之前禁用按钮。如何在文本框为空时禁用按钮

stop(); 
menumulaikuis(); 
var namasiswa:String; 
var nama:TextField = new TextField(); 
namasiswa = nama.text; 

nama.addEventListener(Event.CHANGE,handler); 
function handler(event:Event){ 
    if (nama.text) { 
     ayo.enabled = true; 
     ayo.visible = true; 
    } else { 
     ayo.enabled = false; 
     ayo.visible = false; 
    } 
} 

回答

1

你在你的代码中的一些小问题:使用addChild()

  • 你应该添加文本提交给阶段:
 
    var nama:TextField = new TextField(); 
    addChild(nama); 
  • 如果您的文本字段供用户输入,所以其类型应为input
 
    nama.type = 'input'; 
  • 要验证是否文本字段的文本是空的,你可以简单地做:
 
    if(nama.text == ''){ /* ... */ } 

所以,你的文本字段的变化处理程序可以是这样的:

function changeHandler(event:Event): void 
{ 
    if (nama.text != '') { 
     ayo.enabled = true; 
     ayo.visible = true; 
    } else { 
     ayo.enabled = false; 
     ayo.visible = false; 
    } 
} 

希望能有所帮助。

0

如果文本字段不是用户输入的,则不能使用Event.CHANGE侦听器。

我建议将Event.CHANGE更改为Event.ENTER_FRAME;那应该解决你的问题。

+0

这是错误的。 ['TextField'的'Event.CHANGE'](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#event:change)事件触发任何'TextField'对象,即使是动态的。 – akmozo

+0

我看到了,我在引用:http://stackoverflow.com/questions/977847/as3-textbox-change-event-not-firing –

相关问题