我使用单选按钮的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}
名称=值。
答案 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.