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