私はjqueryとその素晴らしいことを学んでいます! 複雑なことを行うのは非常に簡単ですが、オートコンプリートが失敗した場合に誰かがフォームを送信できないようにする (または警告する) 方法がわかりません。
私のサイトには、データベースの既存のデータでオートコンプリートされるフォームがあり、送信時にそのエントリに関する情報が提供されます。彼らがデータベースにないものを追加すると、私のサーバーはそれらをフォームページに戻してエラーを知らせますが、フォームに記入している間(フォームを送信する前)に警告するために何かしたいと思います。 .
簡単に言えば、フィールドの変更を検出する方法は知っていますが、フィールドがデータベースにない場合、どのように検出 (およびフォームの送信を防止) できますか? 私が考えている 2 つのケースは、stock("ibm') のオートコンプリートがあり、ユーザーが "ib" (完全に完了する前) または "ibmm" (オートコンプリートされた後) のいずれかを入力した場合です。
フィールドがオートコンプリートによって完全に解決されていないかどうかを検出する jquery 風の簡単な方法はありますか?
助言がありますか?
更新: 要求に応じて、ここに私のオートコンプリート コードを示します (基本的には、検索ボックスで値を取得し、「オートコンプリート」という URL に送信するだけです):
<script>
$(function() {
var cache = {},
lastXhr;
$( "#global-search-field" ).autocomplete({
minLength: 2,
source: function( request, response ) {
$(".message").empty()
var term = request.term;
if ( term in cache ) {
response( cache[ term ] );
return;
}
lastXhr = $.getJSON( "autocomplete", request, function( data, status, xhr ) {
cache[ term ] = data;
if ( xhr === lastXhr ) {
response( data );
if ( data == 'no results found'){
//alert(data);
//$(".message").empty().append("not found!");
}
}
});
}
});
});
</script>