我才12 ?

文章关键字 ‘input’

input value值的转义 at 2009.11.11 8:08

昨天测试过来的bug,检查了下是因为input value值的问题,因为我代码里使用的是innerHTML做的,类似这样:

el.innerHTML = '<input type="text" value="' + str + '" />';

很明显,如果str内包含”的话自然会出现问题,当时觉得蛮简单的,我用\转义一下不就行了吗?结果发现不行,原因在于,\是JavaScript的转义符,而这里是html,并不会去认JavaScript的转义符,所以,有两个办法解决这个问题,一种是使用正常的dom方法,先创建一个input,然后为input.value赋值,这里就不存在这个”的问题了,另外一种方法是使用html转义符&quot;或者十进制的&#34;或者其它。。。来进行转义,方法是:

el.innerHTML = '<input type="text" value="' + str.replace(/"/g,'&#34') + '" />';

Demo:http://www.12sui.cn/test/html-value-escape-0911.html

这位姐姐,你好,你的浏览器版本太低了,为了避免您中毒,请您升级您的浏览器!