Html.listboxfor() 如何捕获更改/添加项目的事件 - Jquery MVC (C#)
Posted
技术标签:
【中文标题】Html.listboxfor() 如何捕获更改/添加项目的事件 - Jquery MVC (C#)【英文标题】:Html.listboxfor() how to capture event on change/add item - 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 个列表框。一个有一个可用项目的列表,并在按钮单击时添加到第二个(选定的)列表框。 当列表项选择发生变化时,变化应该起作用。当它添加到列表中的项目时它不起作用。您可以在列表本身中添加项目后编写事件代码。 【参考方案1】:您的 jQuery 无效。再次调用选择器时不需要附加哈希。
const selected = $("#SelectedValues");
if (selected.length > 0)
$(selected).css("width", "300px");
else
$(selected).css("width", "260px");
【讨论】:
他也可以使用$(this)
,因为他在回调中?以上是关于Html.listboxfor() 如何捕获更改/添加项目的事件 - Jquery MVC (C#)的主要内容,如果未能解决你的问题,请参考以下文章