我正在嘗試使用jQuery來做類似asp.net textchanged事件的事情。當我使用自動完成更改一個tetbox值時,將會在另一個文本框中進行更改。數據將來自我的數據庫。假設我有兩個文本框txtOne和TxtTwo。當我使用自動完成txtTwo更改txtone的值將從數據庫更改爲txtOne。 這是我的代碼。我究竟做錯了什麼?我怎麼能在mvc中的同一個文本框中實現自動完成和Textchange事件。動態設置一個文本框的值,同時在jQuery中的另一個文本框上更改
@Html.TextBoxFor(model => model.ITEMNM, htmlAttributes: new { @class = "form-control", id = "txtOne" })
@Html.TextBoxFor(model => model.ITEMNM, htmlAttributes: new { @class = "form-control", id = "txtTwo" })
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$('#txtOne').autocomplete(
{
source: '@Url.Action("TagSearch", "RMS_ITEM")'
});
});
$(function() {
$('#txtOne').change(function() {
var changedText = $("#txtOne").val();
$.post('@Url.Action("ItemNameChanged","RMS_ITEM")', { "ChangedText": changedText });
});
});
</script>
這裏是我的控制器代碼
[HttpPost]
public ActionResult ItemNameChanged(string changedText)
{
var result = (from n in db.PosItemMstDbSet
where n.CATNM == changedText
select new
{
catid = n.CATID
}
);
foreach (var n in result)
{
ViewBag.itemId = n.catid;
}
//return changedText + " was submitted!";
return null;
}
public JsonResult TagSearch(string term)
{
var compid = Convert.ToInt16(System.Web.HttpContext.Current.Session["loggedCompID"].ToString());
var tags = from p in db.PosItemMstDbSet
where p.COMPID == compid
select p.CATNM;
return this.Json(tags.Where(t => t.StartsWith(term)),
JsonRequestBehavior.AllowGet);
}
非常感謝! 另一個問題,我怎麼能抓住JSON數據,並將其設置到我的文本框使用從我的contorller返回的jquery? – 2014-09-25 13:53:18