私はほとんど完全に必要な機能を持っており、少し助けを求めています。 VendorIDプロパティを持つモデルがあります。私はこのモデルを使って強く型付けされたビューを持っています。オートコンプリートを使用する入力テキストボックスからベンダーを選択することができます。jquery autocomplete MVC3
モデルのVendorIDプロパティを、このカミソリの構文でビューの非表示フィールドにバインドします。
@Html.HiddenFor(m => m.VendorID)
は、ユーザーのテキストボックスへのいくつかの文字で種類や項目を選択は、私が持っているjqueryの関数は隠しフィールドの値を設定した場合。これまですべてがうまくいっています。私が持っている問題は、ユーザーがテキストボックスを完全にクリアしたり、無効なテキストを入力したり、有効な値が選択されていないのに、隠しフィールドを更新できない場合です。
これは私が今まで持っていた私のjqueryです。
$(document).ready(function() {
$('#vendorautocomplete').val($('#VendorName').val()); //prepopulate our vendorautocomplete textbox from our model
});
$(function() {
$('#vendorautocomplete').autocomplete({
source: function (request, response) {
$.ajax({
url: "/test/vendors", type: "POST", dataType: "json", //Url to our action supplying a list of vendors
data: { searchString: request.term, maxRecords: 10 },
success: function (data) {
response($.map(data, function (item) {
return { label: item.VendorName, value: item.VendorName, id: item.VendorID };
}));
}
});
},
select: function (event, ui) {
$('#VendorID').val(ui.item ? ui.item.id : 0); //Set our VendorID hidden for model binding
}
});
});
私が選択するのと同様のオートコンプリート機能で何かを行うことができ期待していた:だけぼかしのために上記:,しかし、それは動作しませんでした。私は、テキストボックスの値に基づいてベンダーのIDを調べるためにぼかしイベントを使用することができますが、私は無効なベンダー名を検出し、非表示フィールドを0に設定できるはずですどこがわからないのですか?