Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Submit формы при нажатии <Enter> (http://www.flasher.ru/forum/showthread.php?t=78683)

Orangutan 22.04.2006 12:56

Submit формы при нажатии <Enter>
 
Имеются несколько текстовых полей типа инпут, сделал кнопку для отсылки введенной информации в PHP, но, хотелось бы, чтобы и при нажатии <Enter> когда активировано (!) текстовое поле вылонялась та же операция, т.е. как это работает в обычном html'е :p
Подскажите пожалуйста, как это реализовать :victory:

neelts 22.04.2006 14:28

используй либо компонент TextInput:
Код:

var listenerObject:Object = new Object();
listenerObject.enter = function(eventObject:Object) {
    //...
};
textInputInstance.addEventListener("enter", listenerObject);

либо следующий код для класса TextField
Код:

//
// TextField KeyEvent by neelts
//
var t:TextField = _root.createTextField("txt", 0, 50, 50, 100, 20);
t.border = true;
t.type = "input";
var t2:TextField = _root.createTextField("txt2", 1, 50, 100, 100, 20);
t2.border = true;
t2.type = "input";
t2.bord = function(){
        this.border = this.border ? false : true;
}
function write(a) {
        a.t.text = a.p;
}
//
function addKeyEvent(t:TextField, key:Number, event:Function, obj, args) {
        t.key = key;
        t.onSetFocus = function() {
                this.onKeyDown = function() {
                        if (Key.getCode() == this.key) {
                                event.call(obj, args);
                        }
                };
                Key.addListener(this);
        };
        t.onKillFocus = function() {
                delete this.onKeyDown;
                Key.removeListener(this);
        };
}
function delKeyEvent(t:TextField) {
        delete t.key;
        delete t.onSetFocus;
        delete t.onKillFocus;
        delete t.onKeyDown;
}
addKeyEvent(t, Key.SPACE, write, _root, {t:t, p:"first text"});
addKeyEvent(t2, Key.SPACE, t2.bord, t2);


neelts 23.04.2006 00:41

зы, SPACE на ENTER замени, при тестировании из флеша просто не работает...

Orangutan 23.04.2006 00:57

Спасибо большое за помощь! Сделал с компонентом TextInput, все отлично работет :) Только можно ли ему стиль менять? Пробовал создать из него мувик и поставить Alpha 0%, но тогда мои текстинпуты не раегируют на <Tab> :)

Jegor UQ 23.04.2006 01:35

Код:

var lis:Object = new Object ();
function send ()
{
        //отправить
}
lis.onKeyDown = function ()
{
        Key.getCode () == Key.ENTER ? send () : false;
};
Key.addListener (lis);


neelts 23.04.2006 10:54

Jegor - "когда активировано (!) текстовое поле"

Orangutan - для таких целей лучше использовать обычный TextField.
делать стили для компонентов не очень удобно, нужно из библиотеки импортировать скины этого компонента, потом еще скриптом их натягивать... вообщем гимор...

Jegor UQ 23.04.2006 14:06

Код:

var lis:Object = new Object ({focus:false});
//
//***************************************************
//
for (var i:Number = new Number (); i < 3; i++)
{
        createTextField ("field" + i, getNextHighestDepth (), 10, 20 * i, 300, 20);
        with (eval ("field" + i))
        {
                border = true;
                type = "input";
        }
}
createTextField ("field_result", getNextHighestDepth (), 10, 100, 300, 20);
with (field_result)
{
        border = true;
        text = "please, fill the textFields and press ENTER";
}
//
//***************************************************
//
function sendinfo ()
{
        //
        //***************************************************
        //
        field_result.text = field0.text + " " + field1.text + " " + field2.text;
        // отправить
        //***************************************************
        //
}
for (i = 0; i < 3; i++)
{
        eval ("field" + i).onSetFocus = eval ("field" + i).onKillFocus = function ()
        {
                lis.focus = !lis.focus;
        };
}
lis.onKeyDown = function ()
{
        if (Key.getCode () == Key.ENTER && lis.focus)
        {
                sendinfo ();
        }
};
Key.addListener (lis);

Работает... так? Или я опять что-то недопонял... :umnik2:


Часовой пояс GMT +4, время: 22:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.