Мы используем плагин 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>