如何从看起来像{name = value}

时间:2019-05-31 11:18:35

标签: javascript google-apps-script radio-button google-visualization

我使用单选按钮的onchange事件传递一些信息-因此,只需更改单选按钮即可触发该事件。我将(this)传递给一个函数,“ this”对象包含无线电的名称和值。不幸的是,它没有以key:value格式传递它,而是:

  

{键=值}

我可以很容易地使用

Object.keys(obj).forEach(function(key) { Logger.log(key) });

但是我无法通过调用obj [key]来获取值-返回未定义。

我知道我可以将其字符串化并获取信息,但是我想知道还有哪些其他方法可以提取该值?

背景知识: 我使用的是Google可视化,可以拦截普通的侦听器。我有一列带有单选按钮的表,每一行看起来像这样:

<form name="myForm3" onchange="event.preventDefault(); calcForm2(this);">
<input type="radio" name="3" value="1" checked="checked">
<input type="radio" name="3" value="2">
<input type="radio" name="3" value="3">
<input type="radio" name="3" value="4"></form>
//added carriage returns here just for ease of reading

在我的calcForm2中,我将(this)作为对象传递给我的代码。gs:

function calcForm2(someObject) {
  google.script.run
    .withSuccessHandler(function(response){
      alert("response received: " + response);
    })
    .withFailureHandler(function(err) {
      console.log(err);
    })
    .calcForm(someObject);
}

然后在我的代码.gs中,我现在只是简单地进行一些解析和记录,希望可以将键和值分开:

function calcForm(obj) {
  Logger.log(obj);
  //Logger.log(JSON.stringify(obj));
  Object.keys(obj).forEach(function(key) {
      Logger.log(obj[key]);
  });
  return "Returned";
}

因此,如果我在示例中单击第二个单选按钮,我将从Logger.log(obj)中获得:

  

{3 = 2}

名称=值。

1 个答案:

答案 0 :(得分:0)

Your object has a slight error as discussed in the comments - you use : rather than = when assigning values in an object. Assuming you have an object o with a field named "key" as follows:

var o = {
  key:"value"
}

You can get the value in the key field as follows:

Logger.log(o.key);
Logger.log(o["key"]);

Note that when using the square brackets you must supply the field name as a string.