【问题标题】:Jquery Autocomplete field valuesJquery 自动完成字段值
【发布时间】:2016-07-07 10:55:04
【问题描述】:

我正在使用 jquery 的自动完成功能,这些值是通过 SQL 到 ajax 调用填充的。我想将此字段上的输入限制为仅在自动完成列表中的输入。意思是如果sql返回'A,B,C',则不应该接受值D。

我可以通过在后端进行额外的查询来做到这一点,但我想知道是否有更简单和更有效的方法来实现这一点。

【问题讨论】:

  • 所以你想验证用户输入?
  • 是的,理想情况下,这就是我想要发生的事情。我认为使用下拉 lsit 更好,但自动完成输入对我来说在美学上看起来更好@AndrosRex

标签: javascript jquery ajax model-view-controller autocomplete


【解决方案1】:

是的,您可以在客户端进行用户验证。您可以轻松检查提交的值是否与任何显示的值不对应,显示某种“错误”消息并使用 .preventDefault() 停止发送数据。然而,这只是为了更好的用户体验。尽管如此,大家仍然可以修改 JS 代码并发送无效数据。您不一定必须进行此验证 - 用户也可以在没有它的情况下进行管理。

这就是为什么以安全性和无错误为目标的验证是在服务器端进行的。如果通过发送无效数据,用户可能会损坏表甚至整个数据库,那么您肯定也必须在服务器端对其进行验证。

【讨论】:

  • 目前,我验证它的方法是进行另一个查询,然后检查提交的值是否在自动完成查询返回的列表中。我只是想知道是否有一个简单的 js/jquery 函数来执行此操作,例如 .onlySourceFields: true 或类似的东西(甚至可能不需要执行另一个查询的 javascript/jquery 函数,只需重用自动完成列表中的值)。我认为我做另一个查询来检查可能是我的数据库中不必要的负载。如果没有其他方法可以做到这一点,那么我会坚持我目前的实现。谢谢
  • @Bennjoe Mordeno 为什么你的 JS 代码中没有一个列表来保存当前自动完成的结果,所以在验证时,你所做的就是测试输入值是否对应于是吗?
猜你喜欢
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 2010-12-17
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多