Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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
Validation 验证jquery自动完成_Validation_Jquery Autocomplete - Fatal编程技术网

Validation 验证jquery自动完成

Validation 验证jquery自动完成,validation,jquery-autocomplete,Validation,Jquery Autocomplete,我有一个文本框,其中包含用于自动完成的远程数据源(jquery)[不是插件,如中所示的原始插件] 如何确保用户只键入自动完成建议中的内容,而不键入他自己的内容?问题缺乏细节,但我假设您的意思是在客户端验证,因为您明确提到了自动完成插件。这个答案有两个部分。第一个是原始答案,假设有一个自动完成插件。第二项是根据问题的最新情况修订的 1) 使用 最好的解决方案是“mustMatch”选项。这是API 如果设置为true,则自动完成程序将只允许后端显示的结果。请注意,非法值会导致输入框为空 您应该能够

我有一个文本框,其中包含用于自动完成的远程数据源(jquery)[不是插件,如中所示的原始插件]
如何确保用户只键入自动完成建议中的内容,而不键入他自己的内容?

问题缺乏细节,但我假设您的意思是在客户端验证,因为您明确提到了自动完成插件。这个答案有两个部分。第一个是原始答案,假设有一个自动完成插件。第二项是根据问题的最新情况修订的

1) 使用

最好的解决方案是“mustMatch”选项。这是API

如果设置为true,则自动完成程序将只允许后端显示的结果。请注意,非法值会导致输入框为空

您应该能够以以下方式使用它:

$("selector").autocomplete("url", {"mustMatch": true});
您还可以在“结果”事件中以某种方式验证用户输入。这里有一个链接:

2) 使用

这里没有mustMatch选项。你可以扩展插件,或者你可以添加一些类似于我提到的其他自动完成插件的东西。使用“”事件

如果您使用数组作为数据源,这将更加有效。由于您使用的是远程数据源,因此需要使用ui.item执行另一个最终查询以验证用户值。然后可以允许或拒绝默认行为


在这两种情况下,输入仍然应该在服务器端以某种方式进行验证。这超出了jQuery插件的范围。

对不起,我忘了提及,我使用的是自动完成:而且它似乎不支持mustMatch:(太糟糕了。我已经更新了答案,为该插件添加了建议。
$( ".selector" ).autocomplete({
   change: function(event, ui) { ... }
});