Validation 验证jquery自动完成
我有一个文本框,其中包含用于自动完成的远程数据源(jquery)[不是插件,如中所示的原始插件]Validation 验证jquery自动完成,validation,jquery-autocomplete,Validation,Jquery Autocomplete,我有一个文本框,其中包含用于自动完成的远程数据源(jquery)[不是插件,如中所示的原始插件] 如何确保用户只键入自动完成建议中的内容,而不键入他自己的内容?问题缺乏细节,但我假设您的意思是在客户端验证,因为您明确提到了自动完成插件。这个答案有两个部分。第一个是原始答案,假设有一个自动完成插件。第二项是根据问题的最新情况修订的 1) 使用 最好的解决方案是“mustMatch”选项。这是API 如果设置为true,则自动完成程序将只允许后端显示的结果。请注意,非法值会导致输入框为空 您应该能够
如何确保用户只键入自动完成建议中的内容,而不键入他自己的内容?问题缺乏细节,但我假设您的意思是在客户端验证,因为您明确提到了自动完成插件。这个答案有两个部分。第一个是原始答案,假设有一个自动完成插件。第二项是根据问题的最新情况修订的 1) 使用 最好的解决方案是“mustMatch”选项。这是API 如果设置为true,则自动完成程序将只允许后端显示的结果。请注意,非法值会导致输入框为空 您应该能够以以下方式使用它:
$("selector").autocomplete("url", {"mustMatch": true});
您还可以在“结果”事件中以某种方式验证用户输入。这里有一个链接:
2) 使用
这里没有mustMatch选项。你可以扩展插件,或者你可以添加一些类似于我提到的其他自动完成插件的东西。使用“”事件
如果您使用数组作为数据源,这将更加有效。由于您使用的是远程数据源,因此需要使用ui.item执行另一个最终查询以验证用户值。然后可以允许或拒绝默认行为
在这两种情况下,输入仍然应该在服务器端以某种方式进行验证。这超出了jQuery插件的范围。对不起,我忘了提及,我使用的是自动完成:而且它似乎不支持mustMatch:(太糟糕了。我已经更新了答案,为该插件添加了建议。
$( ".selector" ).autocomplete({
change: function(event, ui) { ... }
});