google apps script - Strange behaviour when using radioButton() -


the code below giving me headache. it's simple application has 2 radio buttons , button. idea of app record in spreadsheet value of radio button selected. now, if select 1st radio button("one") , change second radio button("two") , "one" , click "record" button, app record 3 times in spreadsheet. kind of accumulates selections.

don't know if made myself clear, here steps simulate issue:

1- run application below; 2- select radio button "one", "two" , "one" again , press "record" button; 3- check spreadsheet duplicated values.

the more keep clicking radio buttons, more duplicated values recorded.

any idea why happens , how can overcome issue?

function myappfunction() { var mydoc = spreadsheetapp.getactivespreadsheet(); var app = uiapp.createapplication().settitle('here title bar');  var panel = app.createverticalpanel().setid('panel');  //using setname give ability value   var myradio1 = app.createradiobutton("group","one").setname('myradio1').setid('myradio1'); var myradio2 = app.createradiobutton("group","two").setname('myradio2').setid('myradio2'); var button = app.createbutton("gravar").setid("record_"); //a label used give feedback on value of checkbox  var infolabel = app.createlabel('check box , click submit').setid('infolabel');  //handlers  var handler = app.createserverchangehandler('radio1'); handler.addcallbackelement(panel);   myradio1.addclickhandler(handler);  var handler2 = app.createserverchangehandler('radio2'); handler2.addcallbackelement(panel);   myradio2.addclickhandler(handler2);   //put in ui  panel.add(myradio1);       panel.add(myradio2);  panel.add(button); panel.add(infolabel);  app.add(panel);   mydoc.show(app);   } function radio1(e){ var app = uiapp.getactiveapplication();  app.getelementbyid('myradio2').setvalue(false); app.getelementbyid('infolabel').settext('one is: ' + e.parameter.myradio1); var panel = app.getelementbyid("panel"); var button = app.getelementbyid("gravar"); var handler = app.createserverclickhandler("record_"); handler.addcallbackelement(panel); button.addclickhandler(handler); return app; }  function radio2(e){ var app = uiapp.getactiveapplication();  app.getelementbyid('myradio1').setvalue(false); app.getelementbyid('infolabel').settext('two is: ' + e.parameter.myradio2);  var button = app.getelementbyid("gravar"); var handler = app.createserverclickhandler("gravar_"); handler.addcallbackelement(app.getelementbyid("panel")); button.addclickhandler(handler);  return app; } function record_(e) { var ss = spreadsheetapp.getactivespreadsheet(); var sheet = ss.getsheetbyname("sheet1"); var lastrow = sheet.getlastrow(); var freecell = sheet.getrange("a1").offset(lastrow, 0); freecell.setvalue(e.parameter.myradio1); } 

radio buttons must have same name work in normal exclusive or mode, if refer doc you'll notice required when using in standard panel. here simple example :

function radiotest() {   var app = uiapp.createapplication();   var panel = app.createverticalpanel();   var radiovalue = app.createtextbox();       radiovalue.setid("radiovalue").setname("radiovalue").setvisible(false);   for(var = 1; < 10; i++){     var name = 'choice '+i;     var handler = app.createclienthandler().fortargets(radiovalue).settext(name);     panel.add(app.createradiobutton('radio',name).addvaluechangehandler(handler));   }   panel.add(radiovalue);   var getit=app.createbutton("valide").setid("val");   panel.add(getit)                      var handler = app.createserverhandler("valide")   handler.addcallbackelement(panel)   getit.addclickhandler(handler);   app.add(panel); spreadsheetapp.getactivespreadsheet().show(app);// show app  } // function valide(e){ ;// function called when key "validate" pressed    var sh = spreadsheetapp.getactivesheet();   var ss = spreadsheetapp.getactivespreadsheet();   var radiobutton = e.parameter.radiovalue;                  sh.getrange('a1').setvalue(radiobutton);   var app = uiapp.getactiveapplication();   return app; }​ 

Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -