0

我需要在这样的字段中存储一个键值数组:

<input type="text" id="test" >{key1="a"}{key2="b"}</input>

我如何阅读和更新它?

4

1 回答 1

1

您的输入标签无效;它需要自动关闭。

也就是说,我会将数据存储为 data-* 属性,其中包含 JSON:

<input data-val='{ "key1": "a", "key2": "b"}' type="text" id="test" />

从那里您可以读取值、解析它、更新它、将其字符串化并更新属性。


像这样的东西应该可以帮助您入门,只需注意其中一些会在旧版浏览器中中断,因此您可能需要填充JSON.parse/stringify. 想想看,getAttributeIE7setAttribute不支持。我不确定这些浏览器的解决方法是什么。

var inp = document.getElementById('test');
var obj = JSON.parse(inp.getAttribute('data-val'));

console.log(obj);

obj.key1 = "updated";
obj.key3 = "foo";

inp.setAttribute('data-val', JSON.stringify(obj));

console.log("updated", inp.getAttribute('data-val'));

演示

于 2013-06-03T23:17:12.103 回答