似乎jQuery的val()函数的限制为512 KiB。
这是我的工作: 我有一个带有输入字段的简单表单:
<form id='theForm' action="foo" method='post'>
<input type='text' name='foo'/>
</form>
我还有一个简单的create
函数,当使用参数16调用该函数时,它将创建一个超过512 KiB的字符串。
function create(n) {
var x = '0123456789';
for (var i = 0; i < n; i++) {
x += x;
}
return x;
}
> x = create(16)
> x.length
655360
当我将该值分配给输入字段并再次取回它(在另一个变量上)时,我发现第二个变量的长度为524288字节(确切地是 512 KiB)。 / p>
> $('#theForm > input').val(x)
> y = $('#theForm > input').val()
> y.length
524288
我在做什么错了?
JS Bin here(JS Bin使用jQuery 3.1.0,但我也用3.2.1进行了测试)。
Chrome 54遇到此问题,升级到Chrome 67后已修复。因此,它很可能与jQuery不相关。我正在删除jquery标签。