1

我正在启动 MVC,但这就是我想要的。

我在一侧有一个项目列表,在另一侧有一个文本框。我想单击列表中的一个项目并让文本框显示该项目的文本,但不使用按钮或帖子;类似于“ OnSelectedIndexChanged”的东西。

这就是我到目前为止所拥有的。

控制器:

public ActionResult Index()
{
    var model = new TestModel();
    model.ListOfItems = new List<SelectListItem>();
    SelectListItem item = new SelectListItem();
    item.Text = "Item's text";
    item.Value = "Value for the list";
    model.ListOfItems.Add(item);
    return View(model);
}

模型:

public int[] ItemId { get; set; }
public List<SelectListItem> ListOfItems { get; set; }

看法:

<script type="text/javascript">
function showText() {
    var selectedItem = itemsList.options.selectedIndex;
    txtValue.Text = selectedItem.value;
}
</script>
<h2>Test</h2>

@Html.ListBoxFor(x => x.ItemId, new MultiSelectList(Model.ListOfItems, "Text", "Value", Model.ItemId), new { size = 6, id = "itemsList", OnChange = "showText" })
@Html.TextBox("itemText", "", new { id = "txtItem" })
4

1 回答 1

2

有一些 javascript 监听列表框上的点击事件并获取项目文本并设置为另一个文本框的值

$(function(){

  $("#ItemId option").click(function () {
    var _this = $(this);
    $("#txtItem").val($(_this).text());
  });

});

工作样本:http: //jsfiddle.net/w4sxw/

假设您已将 jQuery 加载到页面。

于 2013-01-23T21:30:36.513 回答