【问题标题】:apostrophe truncating value in input field输入字段中的撇号截断值
【发布时间】:2013-03-09 23:02:47
【问题描述】:

我在通过 ajax 调用重新加载的页面上有一个输入框(内容正在刷新)。问题是当输入框有一个单引号时,剩余的值被截断,我该如何解决这个问题?

myVal = <-- its coming dynamically from db and when it contains values like "It's me", next time page reloads It just show "It" in input box
$('#myInput').val(myVal);
//after setting value and doing some other things, this content is reloaded

这里是java(服务器端代码)

<input id="myInput"  value="<c:if test='${deamer!=null}">${deamer.name}, ${deamer.code}</c:if>' />

当来自服务器端的值包含 ['] 时,代码将失败....

【问题讨论】:

  • 好吧,如果您在此页面上的 javascript 控制台$('.textbox').val("123'3\"") 中编写代码,您会看到为搜索字段设置了正确的值。你能展示一个重现该错误的小提琴吗?
  • 在您使用val 设置它之前,它可能会被截断。将您的代码发布到它来自数据库的位置,它可能在那里
  • 用java代码更新的问题...

标签: java javascript jquery html


【解决方案1】:

我无法重现该问题:

$(document).ready(function() {
   myVal = "It's me"
   $('#myInput').val(myVal);
});

输入文本是我。

DEMO

【讨论】:

    【解决方案2】:

    您遇到了转义字符串的问题。需要注意这一点,因为对字符串转义的不当处理可能会导致潜在的 XSS 和注入攻击。

    由于您没有提供任何代码,也没有指定您在服务器端使用什么语言在脚本中插入数据库值,因此您无能为力。我建议不要插入这样的原始数据,并使用某种形式的中介,例如 JSON 形式的服务器响应,它可以很容易地被 javascript 使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-28
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多