如何不允许在使用PHP的自动完成表单中不在数据库中的值&JS
How to not allow values that are not in the database in an Autocomplete form with PHP & JS
我有一个自动完成函数,其中的表单中键入了城市的名称。所有可能的值都在数据库中,并从数据库中提取,并将其存储在变量$list 中
然后我有了带有输入和按钮的表格
<form name="form1" method="post" action="searchresults.php" >
<input id="hero-demo" autofocus type="search" name="search" placeholder="City" >
<input type="submit" name="submit" value="Search">
</form>
以及自动完成功能:
<script>
$(function(){
$('#hero-demo').autoComplete({
minChars: 1,
source: function(term, suggest){
term = term.toLowerCase();
var choices = [<?= $list ?>];
var suggestions = [];
for (i=0;i<choices.length;i++)
if (~choices[i].toLowerCase().indexOf(term)) suggestions.push(choices[i]);
suggest(suggestions);
}
});
});
</script>
我该怎么做呢?例如,如果用户引入了值"London",而该值不在我的数据库($list)中,那么"搜索"按钮就不起作用。
非常感谢
您可以在js代码中添加submit
事件,然后在提交表单之前执行您想要的操作,在这种情况下,您应该从HTML代码中删除内联事件。
HTML:
<form name="form1" method="post" action="searchresults.php" >
JS:
$('form[name="form1"]').on('submit', function(e){
//Prevent form submiting after click on submit button
e.preventDefault();
//Do what you want
$('#hero-demo').blur();
//Submit the form
$(this).submit();
});
希望这能有所帮助。
相关文章:
- 如何使用 Angular JS 将数据保存在数据库中
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- Bookshelf.js设置的属性不在数据库中
- angular.js从数据库中获取链接
- Electron:Express.js服务器在Mongo数据库'It’准备好了
- 如何使用mysql数据库在node.js中登录API
- 如何访问日期并将其插入数据库?节点.JS&MongoDB
- 使用node-js上传文件,并将表单信息存储在数据库(mysql)中
- 我应该如何使用node.js和导出来调用mysql数据库
- 尝试将js中的字符串写入mySql数据库时获取%%
- Node.js设计:多个异步函数使用作为闭包传递的函数写入数据库
- 使用 node.js 设置 Microsoft Access 数据库连接
- 使用 Node-MYSQL 检索 MYSQl 数据库中最新的 X 个条目量?节点.js
- Selectize.js:如何将数据库中已经选择的标签预加载到输入字段(Meteor&MongoDB/JSON)
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载
- 如何使用一个代码库在线和离线访问 HTML5/JS 应用程序中的数据库
- 使用 JS 和 PHP 从数据库中获取信息
- 使用 SQL .js在 JavaScript 中加载 SQLite 数据库
- Node.js+Mongoose:与数据库逻辑分离的模型/模式
- 使用 sequelize ORM 连接到节点上的 Amazon RDS Postgres 数据库.js出现问题