【发布时间】:2010-10-22 07:54:10
【问题描述】:
我们正在使用 Jörn Zaefferer 编写的自动完成 jQuery 插件,并正在尝试验证输入的选项是否有效。
插件有结果()事件在选择选择时触发。这没关系,但是当用户也单击时,我需要检查文本框中的值。所以我们尝试了 .change() 和 .blur() 事件,但它们都带来了一个问题:当您单击结果 div(“建议”列表)中的条目时,.change() 和 .blur()事件触发,这是在插件向文本框写入值之前,因此此时无需验证。
有人可以帮我配置事件,以便每当有人点击离开但不在结果框中,我可以检查框中的有效值。如果这是错误的方法,请告诉我正确的方法。我们最初使用这个插件是因为它的“mustMatch”选项。此选项似乎不适用于所有情况。很多时候,一个有效的条目会被写入文本框,然后被插件清除为无效,我无法确定原因。
基本代码示例:
<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>
【问题讨论】:
-
我在这里找到了 Victor stackoverflow.com/questions/4952094/…的最佳答案
-
这是一个不错的解决方案。下次需要此功能时,我将不得不尝试。
标签: jquery autocomplete event-handling