我正在读取输入文本字段的值,并将其传递来用作ajax数据

字段值具有+

<input name="someval" type="text" value="Receive (+ open)" />


并且看起来像是在解析数据时,它会将+解析为一个jquery串联。

data: 'someval=' + $("input[name=someval]").val(),


这是我第一次注意到此行为。


首先,我该如何解决。
其次,我无法知道输出何时可能具有这些特殊字符,因此是否存在一种已知的最佳实践来转义输入,以便每当发生输入时都被覆盖?


谢谢

最佳答案

尝试encodeURIComponent

'someval=' + encodeURIComponent($("input[name=someval]").val())


更好的是,让jQuery为您处理:

data: { someval:$("input[name=someval]").val() }


jQuery会自动将您的值(和键)转义为数据类型(例如jQuery.param())的正确格式(使用"application/x-www-form-urlencoded")。

08-05 13:50