我在检索输入文本元素的值时遇到了问题。
输入类似于:10> Foo
,代码是这样的:
for(var i = 0; i < form.inputElemName.value.length;i++){
document.write(form.inputElemName.value.substring(i, i+1));
}
我得到的输出是:10 而不是整个字符串:10&gt; Foo
但最奇怪的是,如果我在每个输入字符前添加一个空格字符,如下所示:
for(var i = 0; i < form.inputElemName.value.length;i++){
document.write(' '+form.inputElemName.value.substring(i, i+1));
}
它起作用并输出:1 0&gt; F o o
有什么建议吗? 非常感谢。
答案 0 :(得分:3)
浏览器可能会注意到有一个突然出错的>
字符,并且在某些情况下会直接'修复'。
在显示之前,请务必使用安全值替换字符串中的值。
如果您想在html页面中显示<
,请使用<
如果您想在html页面中显示>
,请使用>
var text = form.inputElemName.value;
text.replace("<", "<");
text.replace(">", ">");
document.write(text);
答案 1 :(得分:3)
在将纯文本写入文档之前,必须转义HTML实体。 你可以在那里找到编码器/解码器:http://www.strictly-software.com/htmlencode
答案 2 :(得分:0)
@Timothy Groote和@ user734702,这是我在Chrome控制台中所做的,
var a = '10>Foo'; //You can put form.inputElemName.value here.
for(var i = 0; i < a.length;i++){
document.write(a.substring(i, i+1));
}
您可以在文档中仅检查一个名为 form 的表单中是否只有一个名为 inputElemName 的输入变量。