我们正在使用由Jörn Zaefferer编写的自动完成jquery插件,并试图验证是否输入了有效的选项。JQuery自动完成验证选定的值
该插件具有result()事件,该事件在进行选择时触发。这没问题,但我也需要在用户点击时检查文本框中的值。因此,我们尝试了一个.change()和.blur()事件,但它们都提出了一个问题:当您在结果div('建议'列表)中单击一个条目时,.change()和.blur()事件触发,这是在插件向文本框写入值之前,所以在这一点上没有任何可验证的内容。
有人可以帮助我配置事件,所以无论何时有人点击了,但没有在结果框中,我可以检查框中的有效值。如果这是错误的方法,请告诉我正确的一个。我们原先使用这个插件是因为它的'mustMatch'选项。这个选项似乎并不适用于所有情况。很多时候,一个有效的条目将被写入文本框,并被插件清除为无效,但我无法确定原因。
Basic代码示例:
<html>
<head>
<title>Choose Favorite</title>
<script language="JavaScript" src="jquery-1.3.2.min.js" ></script>
<script language="JavaScript" src="jquery.autocomplete.min.js" ></script>
<script>
$(".suggest").autocomplete("fetchNames.asp", {
matchContains:false,
minChars:1,
autoFill:false,
mustMatch:false,
cacheLength:20,
max:20
});
$(".suggest").result(function(event, data, formatted) {
var u = this;
// Check value here
});
/* OR */
$(".suggest").change(function(me) {
//check value here
});
</script>
</head>
<body>
<label for="tbxName">Select name (I show 10):</label><br />
<INPUT type="text" id="tbxName" name="tbxName" class="suggest"><br />
</body>
</html>
我找到了最好的答案在这里维克多 http://stackoverflow.com/questions/4952094/jquery-ui-autocomplete-only-allow-selected-valued-from-suggested-list – 2011-11-03 21:13:18
也就是说体面的解决方案。我将不得不在下次需要此功能时尝试。 – Brettski 2011-11-03 21:31:45
请参阅:http://stackoverflow.com/questions/1267149/how-to-detect-when-user-ignores-jquery-autocomplete-suggestions – 2012-03-08 14:07:56