【问题标题】:I need to get the input value (True/False) of a checkbox when a button is pressed按下按钮时,我需要获取复选框的输入值(真/假)
【发布时间】:2012-09-19 02:52:59
【问题描述】:

我想用 .setName(chk_id) 获取复选框的输入值(真/假),当 id 是我在 flexTable 单元格中引入的行的 id 时。 但我总是得到 "e.parameter_"undefined"" 因为 e.parameter.chk_i 是 "undefined"

var flexTableReg = app.createFlexTable().setId("flexTableReg").setBorderWidth(1);
var check = new Array(lastRow);

for(var r = 0; r < lastRow; r++){
  for(var c = 0; c < lastCol; c++){
    var text = rowsToConfirm[r][c].toString();//HERE IS THE CELL
    flexTableReg.setText(r+1, c, text);


  }
  var id = rowsToConfirm[r][0];
  check[r] = app.createCheckBox().setName("chk_"+id).setId("chk_"+id);
  flexTableReg.setWidget(r+1, lastCol, check[r]);
}//end fors
}//end if

 var botMod = app.createButton().setText("Activar").setId("botStatus");
 var botHandle =  app.createServerHandler("changeStatus").addCallbackElement(verticalPanelAdmin);
 botMod.addClickHandler(botHandle);

mainPanelAdmin.add(flexTableReg);
mainPanelAdmin.add(botMod);
verticalPanelAdmin.add(mainPanelAdmin);
absolutePanelAdmin.add(verticalPanelAdmin);
app.add(absolutePanelAdmin);

return app;
}

function changeStatus(e){
  var ss = SpreadsheetApp.openById(LOGS_SHEET_ID);
  var app = UiApp.getActiveApplication();
  var datarray = getDataArray();
  var lastRow = ss.getLastRow();

  for(var i =0; i<=lastRow;i++ ){
    try{
      var par =  e.parameter["chk_"+i];


      if(true){
        stop_if_true
        var row = getRowByID(0,lastRow,i);
         ss.getRange("E"+i).setValue("1");
      }//end if     
    }catch(e){e.parameter_"undefined"  //if e.parameter "undefined"
          return app;}
}//end for
 return app;
 }; 

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    我不知道 var id = rowsToConfirm[r][0]; 返回的是什么,但这就是您在设置 .setName() 和 .setId() 属性时用作原始 id 参数的内容。

    当您尝试在回调函数中获取值时,您使用数字 i 参数,这样可能会发生冲突。

    其次,复选框的返回值始终是一个字符串,因此请检查'true''false' 而不是truefalse

    希望这会有所帮助,

    问候。

    【讨论】:

    • yes id = rowsToConfirm[r][0] setNme and setId like chk_1 chk_2 etc.. 我会尝试检查 'true' 'false'(string) 而不是 true、false。跨度>
    • 永远不会到达 IF 函数。总是失败: var par = e.parameter["chk_"+i];我正确检查了我的 html 代码和按钮 getName,但我的事件 (e) 无法获取参数并跳转到 catch。
    • 我认为我的 adcallback 函数不起作用,因为我的按钮具有像 chk_1、chk_2 这样的 rigth id 但问题是当我尝试使用 w.parameter.chk_1 或 chk_2 捕获对象时..
    • 在尝试获取 e.parameter["chk_"+i] 之前,请尝试使用调试器查看变量 'e'。通过这种方式,您可以查看“e”包含的内容。也许这将帮助您确定发生了什么,从而确定可能是什么问题。
    • 什么都没有发生,我认为在函数的复选框中获取名称为 ["chk_"+i] 的多个复选框的e.parameter 是不可能的。
    猜你喜欢
    • 2022-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2014-09-03
    • 2012-11-13
    相关资源
    最近更新 更多