input value值的转义
昨天测试过来的bug,检查了下是因为input value值的问题,因为我代码里使用的是innerHTML做的,类似这样:
el.innerHTML = '<input type="text" value="' + str + '" />';
很明显,如果str内包含”的话自然会出现问题,当时觉得蛮简单的,我用\转义一下不就行了吗?结果发现不行,原因在于,\是JavaScript的转义符,而这里是html,并不会去认JavaScript的转义符,所以,有两个办法解决这个问题,一种是使用正常的dom方法,先创建一个input,然后为input.value赋值,这里就不存在这个”的问题了,另外一种方法是使用html转义符"或者十进制的"或者其它。。。来进行转义,方法是:
el.innerHTML = '<input type="text" value="' + str.replace(/"/g,'"') + '" />';
Demo:http://www.12sui.cn/test/html-value-escape-0911.html
标签: input
这篇文章发布于 2009年11月11日,星期三,08:39,归类于 HTML, JavaScript。 您可以跟踪这篇文章的评论通过 RSS 2.0 feed。 您可以留下评论,或者从您的站点trackback。