Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 钛的范围问题_Javascript_Arrays_Scope_Titanium - Fatal编程技术网

Javascript 钛的范围问题

Javascript 钛的范围问题,javascript,arrays,scope,titanium,Javascript,Arrays,Scope,Titanium,我在下面创建的tfield[]数组中遇到范围问题。我用六个单元格创建了十行。每个单元格都有一个用于验证的侦听器。我需要对每一行进行计算,将单元格相加,并创建一个运行总数。当我调用例程对单元格求和时,我的单元格变量tfield[x]。值为空或未定义,具体取决于我最初声明tfield[]的位置 function createRow1(i) // start create row { row1 = Ti.UI.createView({ backgroundColor: 'white'

我在下面创建的tfield[]数组中遇到范围问题。我用六个单元格创建了十行。每个单元格都有一个用于验证的侦听器。我需要对每一行进行计算,将单元格相加,并创建一个运行总数。当我调用例程对单元格求和时,我的单元格变量tfield[x]。值为空或未定义,具体取决于我最初声明tfield[]的位置

function createRow1(i) // start create row 
{ 

  row1 = Ti.UI.createView({
    backgroundColor: 'white',
    borderColor: '#bbb',
    borderWidth: 1,
    width:'100%', height: 70,
    top: 0, left: 0 });

    var tfield1 = [];
    var label1 =  [];
    var label2 = []; 

    for (i=0;i<6;i++)
    {
       tfield1[i] = Ti.UI.createTextField(baseAttrs); 
       label1[i] = Ti.UI.createLabel(lbAttrs1);
       label2[i] = Ti.UI.createLabel(lbAttrs2);
    }


    tfield1[0].addEventListener('change', function()
    {
       if (tfield1[0].value > 10)
       {
          tfield1[0].value = "";  
          showMessageTimeout("More than 10.",15);
        }
     }); 

   // 6 listeners created, one for each element in the
   // tfield[] array. Omitted for brevity.     

   tfield1[0].left ="0%"; 
   tfield1[1].left ="12%";
   tfield1[2].left ="24%";
   tfield1[3].left ="36%";
   tfield1[4].left ="48%";
   tfield1[5].left ="60%";



   for (i=0;i<6;i++)
   {
      row1.add(tfield1[i]);
      row1.add(label1[i]);
      row1.add(label2[i]);
   }

  return row1;

}  /// end of createrow1

  for(i = 0; i < 10; i++){
    row1 = createRow1(i);
    scrollView1.add(row1);
  }

/*
     all six rows are added to a scrollview. A button 
     click fires a listener that sums each row which  
     should also calc a running total of all rows. When 
     called the calc function either shows tfield[] 
     as undeclared or as a blank, depending on 
     where tfield[] is declared.
  */
函数createRow1(i)//开始创建行
{ 
行1=Ti.UI.createView({
背景颜色:“白色”,
边框颜色:“#bbb”,
边框宽度:1,
宽度:100%,高度:70,
顶部:0,左侧:0});
变量tfield1=[];
var label1=[];
var label2=[];
对于(i=0;i=10)
{
tfield1[0]。值=”;
showMessageTimeout(“超过10.”,15);
}
}); 
//创建了6个侦听器,每个侦听器用于
//tfield[]数组。为简洁起见省略。
tfield1[0]。左=“0%”;
tfield1[1]。左=“12%”;
tfield1[2]。左=“24%”;
tfield1[3]。左=“36%”;
tfield1[4]。左=“48%”;
tfield1[5]。左=“60%”;

对于(i=0;i我回答了你的最后一个问题,但被删除了

首先,你现在的问题不像以前那么清楚了。我认为是缺少代码

但别担心,我有你发布的所有代码。所以:

你真正要做的是一个元素矩阵,我认为你访问所有textField元素的一个简单方法是:

var tfields = [];

buttonCalc.addEventListener('click',function(e)
{
   showMessageTimeout("calc pressed",15);
   alert(tfields[0][0].value);
   // alert(tfield1[0].value);  // reference to tfield[0] blows up.

});

...

function createRow1(i) // start create row 
{ 
    ...
    tfields.push(tfield1);  //Add this line here
    return row1;

}  /// end of createrow1

我已经有了你所有其他问题的答案,你可以用它们提出一个新问题:-)

这很有趣:)我回应了一个请求,用较小的代码将每个帖子分成一个问题。但愿我能等一等!我用多维数组的更新代码创建了一个新问题。再次感谢推送提示。嗨,乔卡拉,我找不到你提到的问题,你能给我一个链接吗?你还需要其他3个问题的帮助吗?你很好,我转告你。不知道昨晚我的帖子发生了什么事!