Javascript 将文本字段值传递到新窗口
我正在尝试获取一个textfield的值,并使用Ti.App.firevent将其传递给一个新的窗口Javascript文件,以便在按下按钮时最终将其插入数据库。。。到目前为止,我有一个变量存储名为usernameValue的textfield的值。然后将其发送到http参数值。一定有一些我遗漏的简单的东西。让我知道是否需要更多的信息来让这个问题更清楚 数据最初来自的TexField:Javascript 将文本字段值传递到新窗口,javascript,function,parameter-passing,titanium,dom-events,Javascript,Function,Parameter Passing,Titanium,Dom Events,我正在尝试获取一个textfield的值,并使用Ti.App.firevent将其传递给一个新的窗口Javascript文件,以便在按下按钮时最终将其插入数据库。。。到目前为止,我有一个变量存储名为usernameValue的textfield的值。然后将其发送到http参数值。一定有一些我遗漏的简单的东西。让我知道是否需要更多的信息来让这个问题更清楚 数据最初来自的TexField: var username = Titanium.UI.createTextField({ //colo
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));
});
控制台输出中没有显示作为参数传递的名称,当投入使用时,调试器/模拟器表示找不到变量。有什么想法吗?请参见上面的按钮用法。我认为,在给出调试器反馈的情况下,数据实际上根本不会传递到新窗口。我上面提供的示例代码是有效的,请提供一个简单的测试用例,它不起作用,没有人真的希望重建整个项目来为您找到解决方案上面的按钮参数就是测试用例。如果你的意思是其他的,请让我知道。我重新评价了登录和IM代码。login.js包含fire事件,IM.js包含事件侦听器。