【问题标题】:Posting a form with control characters发布带有控制字符的表单
【发布时间】:2013-11-21 21:38:06
【问题描述】:

我很困惑地发现,较新版本的 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/

【问题讨论】:

  • 据我所知,损坏的部分是 元素,因此您无法将这些字符放入将其解释为字符串终止符的浏览器的表单中。

标签: javascript forms control-characters


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 2018-11-10
    • 2018-01-06
    • 2013-11-10
    相关资源
    最近更新 更多