HTML输入文本字段值。问题阅读运算符'>'

时间:2011-05-04 11:50:49

标签: javascript html

我在检索输入文本元素的值时遇到了问题。

输入类似于: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

有什么建议吗? 非常感谢。

3 个答案:

答案 0 :(得分:3)

浏览器可能会注意到有一个突然出错的>字符,并且在某些情况下会直接'修复'。

在显示之前,请务必使用安全值替换字符串中的值。 如果您想在html页面中显示<,请使用&lt; 如果您想在html页面中显示>,请使用&gt;

var text = form.inputElemName.value;
text.replace("<", "&lt;");
text.replace(">", "&gt;");
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 的输入变量。