javascript - Titanium 将文本字段值传递到新窗口

标签 javascript function parameter-passing titanium dom-events

我正在尝试使用 Ti.App.fireEvent ( http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App-method-fireEvent ) 获取文本字段的值并将其传递到新窗口(Javascript 文件),以便我最终可以在按下按钮时将其插入数据库...到目前为止,我有一个变量用于存储名为 usernameValue 的文本字段的值。然后这将被发送到一个 http 参数值。一定有一些简单的东西我错过了。如果需要更多信息来使这个问题更清楚,请告诉我。

数据最初来自的TexField:

var username = Titanium.UI.createTextField({
    //color : '#ffffff',
    top : 10,
    width : 300,
    height : 45,
    hintText : 'Username',
    keyboardType : Titanium.UI.KEYBOARD_DEFAULT,
    returnKeyType : Titanium.UI.RETURNKEY_DEFAULT,
    borderStyle : Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,
    clearButtonMode: Titanium.UI.INPUT_BUTTONMODE_ONFOCUS
});

需要从login.js传递:

//FireEvent parameter passing!
var usernameValue = username.value;

Ti.App.addEventListener('sendDataToScreen', function()
{
    Ti.App.fireEvent('app:populateUsername', usernameValue);
});

IM.js 检索:

//FireEvent Paremeter Passing!
Ti.App.fireEvent('app:populateUsername', usernameValue);

新窗口(如果这有帮助):

//if logged in, open new window!
        var IM = Ti.UI.createWindow({
            url : 'IM.js',
            navBarHidden : false,
            // fullscreen:false

        });
        IM.open();

使用按钮参数传递:

//posting of IM onclick to database!!
postBtn.addEventListener('click', function(e) {

    if (chatBox.value != '') {

        createReq.open("POST", "http://***.php");
        var params = {

            post : chatBox.value,
            user : _data.username
        };
        createReq.send(params);

        //tap to repload and clear
        var rd = [];
        tableview.data = rd;
        setData();

    } else {
        var blankAlert = Titanium.UI.createAlertDialog({
            title : 'Posting Error',
            message : 'Post cannot be empty',
            buttonNames : ['OK']
        });
        blankAlert.show();
    }
});

最佳答案

发送数据时

Ti.App.fireEvent('app:populateUsername', { "username" : usernameValue });

接收数据时

Ti.App.addEventListener('app:populateUsername', function(_data)
{
    // all the data passed
    Ti.API.info(JSON.stringify(_data));

    // the value is here
    Ti.API.info("the name passed as a parameter " + _data.username));
});

关于javascript - Titanium 将文本字段值传递到新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17267756/

相关文章:

javascript - 如何一次验证所有字段?

php - 为什么这个 javascript 变量没有被设置到 php 中的 cookie 中?

python - 在 luigi 中处理很多参数

java - 从Java学C++,尝试做一个链表

c++ - 专用 vector 模板的大括号初始化

javascript - 如何使用 Chai 断言对象数组中的类型?

php - 尝试将 span 元素的值输入数据库

python - 从python中的函数返回不同的数据类型

c++ - 如何使用类中的函数从 main 打印变量,帮助理解 OOP c++

c - 关于函数和参数的几个问题