Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 是否有办法强制用户在提交表单之前选择自动完成值?_Jquery Ui_Jquery_Jquery Ui Autocomplete - Fatal编程技术网

Jquery ui 是否有办法强制用户在提交表单之前选择自动完成值?

Jquery ui 是否有办法强制用户在提交表单之前选择自动完成值?,jquery-ui,jquery,jquery-ui-autocomplete,Jquery Ui,Jquery,Jquery Ui Autocomplete,我正在使用jqueryui自动完成功能来允许用户选择他们的位置。我需要确保他们在提交表单之前从自动完成中选择一个位置。我不希望他们能够在选择值之前提交表单 我的解决方案是在他们提交后确保找到的值在数据库中。另一种解决方案是,当他们单击submit时,或者在他们离开位置框并转到另一个字段后,通过ajax提交条目,以确保条目在未显示错误时有效,并且不允许他们提交表单 我想知道是否有更简单的方法,或者是否有更优雅的方法。我意识到他们必须能够在框中键入一些内容才能使自动完成工作,因此我可以强制他们从自动

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

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

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


想法?

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

本质上,如果禁用submit按钮并在禁用submit按钮时让表单的onsubmit“return false”,则可以通过在表单的值有效时启用submit按钮来帮助确保用户在您这样说之前不会提交


要在客户端验证表单,由于您已经在使用jquery,您可能需要查看。如果用户单击了自动完成条目,我将设置一个标志,如果文本框被修改,则清除该标志。

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


我认为没有必要提出AJAX请求来验证某个字段的输入,除非您真的必须将资源使用降至最低限度。我这样说是因为,如果您要执行AJAX请求以进行验证,您可以简单地发送整个表单并在后端进行验证,除非是一个非常大的表单。

某些浏览器在某些情况下会在其他事件(如在enter上)上提交表单。此外,像移动浏览器这样的东西可能不会按您预期的方式运行。因此,最好不要将这些事件单独挂在按钮上,而是挂在表单上——不管表单是如何提交的,您都有机会运行您的代码。