2

我很困惑地发现新版本的 Chrome、Opera 和 Safari 不允许在 INPUT 元素内的文本中使用控制字符。事实上,像 \1,\x02等这样的字符\b被简单地解释为字符串终止符。

var input = document.createElement('INPUT');
input.value = 'Hello\x02 World!';
alert('input.value is "' + input.value + '" (' + input.value.length + ' chars)');

上面的代码在 Chrome、Opera 和 Safari 上只输出 5 个字符。

Firefox 和 IE 不显示此行为/错误/安全功能或其他任何内容。现在我的问题是,您将如何以一种适用于所有浏览器的方式,在纯 Javascript 中发布包含这些特殊字符的表单?

JsFiddle:http: //jsfiddle.net/Nkx4n/

4

1 回答 1

0

我在 chrome 中,和你一样,如果我尝试为输入分配一个带有 \ 的字符串,它会停止,但如果用户直接在输入中输入它就没有问题,就像你在这个小提琴中看到的那样

    myP.innerHTML = "Length is: " + myInput.value.length + " chars" + "; text is: " + myInput.value;

我不知道您是否需要在代码中设置该值,但如果您不需要,应该没有任何问题,因为用户仍然可以输入它并读取它。

于 2013-11-21T21:59:08.477 回答