javascript的“更改”函数在asp.net mvc中不起作用

Posted

技术标签:

【中文标题】javascript的“更改”函数在asp.net mvc中不起作用【英文标题】:Function 'on change' of javascript not working in asp.net mvc 【发布时间】:2020-03-03 03:04:52 【问题描述】:

我尝试使用 js ASP.NET MVC 5 查看基于类别的产品列表。我是新手,它根本不会作用于选择框。这是我的代码:

我的选择块:

<select class="SelectCategory" name="SelectCategory">
<option value="0">All</option>
@foreach (var item in ViewBag.categories)

    if (ViewBag.SelectedCat == item.Value)
    
        <option selected="selected" value="@item.Value">@item.Text</option>
    
    else
    
        <option value="@item.Value">@item.Text</option>
    

Js:

@section Scripts 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js"></script>
<script>

    $(function () 

        $("#SelectCategory").on("change",
            function() 
                var url = $(this).val();
                if (url) 
                    window.location = "/admin/shop/Products?catId=" + url;
                

                return false;
            );
);

</script>

【问题讨论】:

【参考方案1】:

$("#SelectCategory") 这将查找带有 id 的 dom,但您使用了类和名称。您可以添加 id 属性来选择

<select id='SelectCategory' class="SelectCategory" name="SelectCategory">

【讨论】:

【参考方案2】:

$("#SelectCategory").on("change",

这是错误的,因为您的元素不包含 ID 元素,而这正是您的 jQuery 选择器中 # 符号所指示的内容。

如果您想通过 name 属性定位元素,您应该使用以下内容:

$("[name='SelectCategory']").on("change",

【讨论】:

以上是关于javascript的“更改”函数在asp.net mvc中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

javascript 无法从 asp.net 更改简单的标签文本

asp.net调用javascript返回值

ASP.NET 页面加载完成后运行 javascript 函数

如何在 asp.net 中从 javascript 调用代码隐藏函数?

ASP.NET WebForm中JavaScript修改了页面上Label的值,如何在后台代码中获取

回发后,我的 JavaScript 函数在 ASP.NET 中不起作用