提交时忽略文本输入框中的逗号
我做了一个搜索功能,前端部分运行得很好。不过,在提交搜索时,我希望能忽略掉逗号。
现在我用逗号来进行分隔搜索。问题是,当我提交时,逗号也被包含在内,这样就搞乱了我的搜索值。
有没有办法在提交时忽略逗号呢?
举个例子:搜索 [Example][Test]
实际上会返回 Example,Test
。
我在这里做了一个 示例
任何建议和帮助都非常感谢。
2 个回答
0
看你的个人资料,我猜你是在用Python作为服务器端的语言。你想解决的问题最好在服务器端处理:绝对不要依赖前端代码来转义或格式化用于查询的数据……想了解更多,可以看看Bobby Tables。
总之,在Python中,你可以试试这个:
ajaxString.replace(",","\", \"")
这段代码会把所有的逗号替换成" OR "
,所以像some, keywords
这样的字符串会变成some", "keywords
,只需在前面加上some_field IN ("
,最后加上")
,就能形成一个有效的查询。
另外,你也可以把关键词分开,单独处理(这样在根据结果的相关性排序时会很有用)。
searchTerms = ajaxString.split(",")
>>>['some','keywords']
希望这能帮到你。
最后,我建议你根本就不要费心去开发自己的搜索功能。直接在你的网站上加一个谷歌搜索就行,他们是专家。你自己根本不可能做得更好。即使你能做到,想想看要花多长时间!
是的,有时候公司会自己创建搜索引擎,但那是因为他们有很好的理由和足够的资源去做这样的事情。编程往往就是要做到“聪明地懒惰”:不要重复造轮子。
1
var firster = true;
//capture form submit
$('form.nice').submit(function(e){
if(firster){
// if its the first submit prevent default
e.preventDefault();
// update input value to have no commas
var val = $('input').val();
val = val.replace(/,/g, ' ');
$('input').val(val);
// let submit go through and submit
firster = false;
$(this).submit();
}
});