4

我正在使用 jqueryui 自动完成功能来允许用户选择他们的位置。我需要确保他们在提交表单之前从自动完成中选择一个位置。我不希望他们能够在选择值之前提交表单。

我的解决方案是在他们提交后确保找到的值在数据库中。另一种解决方案是,当他们单击提交或离开位置框并转到另一个字段以通过 ajax 提交条目时,以确保它是有效的,如果不显示错误并且不让他们提交表单。

我想知道是否有更简单的事情我可以做,或者是否有更优雅的事情。我意识到他们必须能够在框中输入一些内容才能使自动完成功能正常工作,因此我可以强制他们从自动完成功能中选择一个值,因为它不是一个选择框,所以我的上述解决方案似乎是最好的方法。

想法?

4

3 回答 3

3

在任何情况下,您都需要保留服务器端检查以避免安全性和其他错误。但是,您可以添加客户端验证以更加用户友好。

从本质上讲,如果您禁用提交按钮并在提交按钮被禁用时让表单的 onsubmit “返回 false”,您可以帮助确保用户在您这样说之前不会提交 - 通过在表单的值为时启用提交按钮有效的。

要在客户端验证表单,由于您已经在使用 jquery,您可能需要查看jquery 的验证插件

于 2010-05-31T15:43:11.360 回答
1

如果用户单击了自动完成条目,我会设置一个标志,如果修改了文本框,我会清除该标志。

于 2010-05-31T15:43:59.097 回答
0

我的建议是,根本不使用提交按钮,而是一个简单的按钮,您可以在其中使用 javascript 附加点击事件。这样,当用户单击它时,您可以验证您需要的任何内容并自己提交表单。

我不认为发出 AJAX 请求以验证您的某个字段的输入的意义,除非您确实必须将资源使用降至最低点。我这样说是因为,如果您要执行 AJAX 请求进行验证,您可以简单地发送整个表单并已经在后端进行验证,除非是一个非常大的表单。

于 2010-05-31T15:49:28.360 回答