在WebKit文本输入中允许超过524288个字符

时间:2016-04-07 11:15:56

标签: javascript jquery html browser

有没有办法增加文本输入元素的Chromes默认524288字符限制? (似乎也发生在Safari中,所以我假设它与WebKit相关)

对于上下文,我使用此输入来保存base64编码的图像。不幸的是,由于这种情况我需要使用输入元素,所以只使用隐藏元素不是一种选择。

为了演示,在WebKit浏览器中这些数字不匹配,其他每个浏览器似乎都没有限制输入。有办法解决这个问题吗?

$(document).ready(function(){
  // Build a really long string
  var reallyLongString = "abcdefghijklmnopqrstuvwxyz";
  for(var i = 0; i < 15; i++){
   reallyLongString = reallyLongString + reallyLongString;
  }

  // The important bit
  $("#inputElement").val(reallyLongString);
  $("#quantityDisplay").html(
    "Actual length: " + reallyLongString.length + 
    "<br />" +
    "Input length: " + $("#inputElement").val().length
  );
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="inputElement" type="text" />
<div id="quantityDisplay"></div>

2 个答案:

答案 0 :(得分:0)

此限制似乎不适用于textarea元素,该元素可替换为并且将正常工作。

$(document).ready(function(){
  // Build a really long string
  var reallyLongString = "abcdefghijklmnopqrstuvwxyz";
  for(var i = 0; i < 15; i++){
   reallyLongString = reallyLongString + reallyLongString;
  }

  // The important bit
  $("#inputElement").val(reallyLongString);
  $("#quantityDisplay").html(
    "Actual length: " + reallyLongString.length + 
    "<br />" +
    "Input length: " + $("#inputElement").val().length
  );
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="inputElement" type="text"></textarea>
<div id="quantityDisplay"></div>

答案 1 :(得分:0)

如果值来自js而非用户,则可以使用hidden输入。