<script> $(function () {
var data = [{ id: 1, name: 'kd1' }, { id: 2, name: 'kd2' }, { id: 3, name: 'kd3' }, { id: 4, name: 'kd4' }];
var json = $.toJSON(data);
$('#hdKD').val(json); alert($('#hdKD').val());
}); </script> <input id="hdKD" type="hidden"/>按F12看调试,可以看到而且alert的结果也和预计的一样。
但是奇怪的是,按道理,value后面红线部分,应该出错的,因为双引号的问题。实际value应该是="[{"尝试直接把json写到value里,可以看到,IDE直接提示有错误。并且这样alert的结果,也是错误的。究竟这个是什么原因,导致js给属性赋值,就可以包含双引号而不报错。特殊符号难题赋值
我写的是.net主要还是想知道这是什么原因,导致js赋值的json就有效。
直接在html里那么写双引号 浏览器解析的时候会失败~~~~
为什么要赋值给 input
可以考虑赋值前 替换 特殊字符串
js赋值的话,赋给value的是json而不是字符串,你看到的双引号是json必需的一部分。
然后你通过浏览器的firebug IEdevelop等去监听该参数就可以看到如下。
a : "adsfaf"daf"";
但是我们自己编写程序的时候必须加上转义字符