Мы используем подключаемый модуль автозаполнения jQuery, написанный Jörn Zaefferer, и пытаемся проверить допустимый вариант. вводится.
Плагин имеет событие result(), которое срабатывает при выборе. Это нормально, но мне нужно проверить значение в текстовом поле, когда пользователь также щелкает. Итак, мы попробовали события .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>