我已經實現自動完成,並且選擇了項目後,我在與標籤與在文本框中的值的麻煩。當我在一個郵政編碼型,i看到標籤在下拉:JQuery用戶界面自動完成與.net MVC:選擇時,如何顯示標籤,但保存價值
但我選擇一個之後,代替標籤在文本框中示出,該值(這是ID,需要保存到數據庫中)顯示:
如何仍顯示標籤選中它後,但是當被保存形式,它通過ZipCodeID的領域?
這裏是我的控制器方法:
public JsonResult FindZipCode(string term)
{
VetClinicDataContext db = new VetClinicDataContext();
var zipCodes = from c in db.ZipCodes
where c.ZipCodeNum.ToString().StartsWith(term)
select new { value = c.ZipCodeID, label = c.ZipCodeNum};
return this.Json(zipCodes, JsonRequestBehavior.AllowGet);
}
這是我的標記:
<script type="text/javascript">
$(document).ready(function() {
$("#ZipCodeID").autocomplete({
source: '<%= Url.Action("FindZipCode", "Customers") %>',
});
});
</script>
<div class="ui-widget"><input type="text" name="ZipCodeID" id="ZipCodeID" /></div>
編輯:這是我最後的工作代碼:
控制器:
public JsonResult FindZipCode(string term)
{
VetClinicDataContext db = new VetClinicDataContext();
var zipCodes = from c in db.ZipCodes
where c.ZipCodeNum.ToString().StartsWith(term)
select new { value = c.ZipCodeID, label = c.ZipCodeNum};
return this.Json(zipCodes, JsonRequestBehavior.AllowGet);
}
和標記:
<script type="text/javascript">
$(document).ready(function() {
$("#ddZipCode").autocomplete({
source: '<%= Url.Action("FindZipCode", "Customers") %>',
select: function(event, ui) {
var zipCodeID = parseInt(ui.item.value, 1);
$("#ddZipCode").val(ui.item.label);
$("#ZipCodeID").val(ui.item.value);
return false;
}
});
});
</script>
<div class="ui-widget"><input type="text" name="ddZipCode" id="ddZipCode" /></div>
<%= Html.Hidden("ZipCodeID")%>
不是唯一的,足以不需要一個單獨的ID郵政編碼?我不能完全理解你爲什麼會想它,否則 – 2010-09-28 04:58:43
好點!當我最初構建數據庫時,我對它很陌生。我將自己的郵政編碼設置爲具有自動遞增的ID,並不是真的認爲郵政編碼本身是唯一的。我現在可以回去改變它,但效果會在其他地方變成其他許多變化。我可能應該這樣做...... :)謝謝! – Ben 2010-09-28 14:34:14
沒問題。你很瞭解事情並採取務實的態度。 – 2010-09-28 22:18:57