我需要在这样的字段中存储一个键值数组:
<input type="text" id="test" >{key1="a"}{key2="b"}</input>
我如何阅读和更新它?
我需要在这样的字段中存储一个键值数组:
<input type="text" id="test" >{key1="a"}{key2="b"}</input>
我如何阅读和更新它?
您的输入标签无效;它需要自动关闭。
也就是说,我会将数据存储为 data-* 属性,其中包含 JSON:
<input data-val='{ "key1": "a", "key2": "b"}' type="text" id="test" />
从那里您可以读取值、解析它、更新它、将其字符串化并更新属性。
像这样的东西应该可以帮助您入门,只需注意其中一些会在旧版浏览器中中断,因此您可能需要填充JSON.parse/stringify
. 想想看,getAttribute
IE7setAttribute
不支持。我不确定这些浏览器的解决方法是什么。
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'));