Max*_*ich -1 html javascript quotes jquery double-quotes
假设我有一个<input>标签。该标签的值用于更改。问题是,如果用户输入单引号或双引号 - 它会破坏代码。现在这个问题解决起来很简单:
这是示例代码:
<input id="TestInput"></input>
Run Code Online (Sandbox Code Playgroud)
$("#TestInput").keypress(function (e) { // override keypress of " or '
if (e.which == 13 || e.which == 34 || e.which == 39) {
return false;
}
})
.bind("paste", function (e) {// forbid paste
e.preventDefault();
})
.change(function(){
var value = $(this).val();
//and then I use this value for my operations
});
Run Code Online (Sandbox Code Playgroud)
问题:是否有更好的方法来摆脱所有引号而不禁止粘贴?
注意:我认为它可以用 RegExp 解决,但我不擅长它们,所以如果你可以提供 Regexp - 这可以工作。
提前感谢大家。
更改时,将对调用数据库的方法执行 ajax 调用,并且引号会以某种方式中断查询,如下所示: 查询:
var query = "SELECT Column FROM table WHERE somecolumn LIKE '" + inputVal+ "'%";
Run Code Online (Sandbox Code Playgroud)
如果inputVal是类似的东西, "foo结果刺痛将如下所示:
var query = "SELECT Column FROM table WHERE somecolumn LIKE '" + "foo+ "'%";
Run Code Online (Sandbox Code Playgroud)
这显然破坏了查询。+ 数据库中没有包含引号的项目。
只处理文本框中的数据:
$("#TestInput").on('input', function () {
var value = $(this).val().replace(/'/g, '').replace(/"/g, '');
// go on with processing data
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6059 次 |
| 最近记录: |