【问题标题】:Html.listboxfor() how to capture event on change/add item - Jquery MVC (C#)Html.listboxfor() 如何捕获更改/添加项目的事件 - Jquery MVC (C#)
【发布时间】:2020-02-14 01:49:49
【问题描述】:

我有一个需求,我想在 MVC C# 中将项目添加到列表框时进行捕获。有两个列表框,一个用于可用项目,另一个用于选定项目,我正在使用按钮将项目从可用项目添加到选定项目。我不能使用按钮事件,因为它们通常是为多个屏幕编写的。所以我需要一些类似于选定列表框的更改事件的东西,这样我就可以执行特定的操作。

我似乎无法找到change 事件不起作用的原因。

@Html.ListBoxFor(x => x.SelectedValues, new MultiSelectList(Model?.SelectedValues, "Code", "Description"), new 
{ 
  @style ="width:300px; ", 
  size = 20, 
  name = "All", 
  @class = "evo-no-padding-right" 
})
$('#SelectedValues').change(function () {
  const selected = $("#SelectedValues");
  if (selected.length > 0) {
    $("#" + selected).width = "300px";
  } else {
    $("#" + selected).width = "260px";
  }
});

请提出建议。

【问题讨论】:

  • 当一个项目添加到列表框时捕获是什么意思?您的意思是您正在动态创建元素,或者您想知道用户何时选择了某些东西?它还有助于查看实际的 HTML 输出。
  • 是的,我有 2 个列表框。一个有一个可用项目的列表,并在按钮单击时添加到第二个(选定的)列表框。
  • 当列表项选择发生变化时,变化应该起作用。当它添加到列表中的项目时它不起作用。您可以在列表本身中添加项目后编写事件代码。

标签: c# jquery asp.net-mvc model-view-controller asp.net-mvc-5


【解决方案1】:

您的 jQuery 无效。再次调用选择器时不需要附加哈希。

const selected = $("#SelectedValues");
if (selected.length > 0) {
    $(selected).css("width", "300px");
} else {
    $(selected).css("width", "260px");
}

【讨论】:

  • 他也可以使用$(this),因为他在回调中?
猜你喜欢
  • 2011-01-21
  • 1970-01-01
  • 2020-05-05
  • 2013-07-18
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 2011-09-10
相关资源
最近更新 更多