Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript asp.net MVC中未触发更改函数的Jquery_Javascript_C#_Jquery_Asp.net Mvc - Fatal编程技术网

Javascript asp.net MVC中未触发更改函数的Jquery

Javascript asp.net MVC中未触发更改函数的Jquery,javascript,c#,jquery,asp.net-mvc,Javascript,C#,Jquery,Asp.net Mvc,asp.net MVC中未触发更改函数的Jquery 免责声明:这似乎是一个常见的问题,但请容忍我,读到最后 我有两个文件,即CreateProject.cshtml和projectMasterNew.js CreateProject.cshtml projectMasterNew.js 上述jquery代码一直工作到今天早上。 问题: 该脚本在页面加载时被访问,因为我在函数之前收到了警报。但是当我更改AccountName下拉列表中的值时,更改事件没有触发。 我尝试按如下方式调用chan

asp.net MVC中未触发更改函数的Jquery

免责声明:这似乎是一个常见的问题,但请容忍我,读到最后

我有两个文件,即CreateProject.cshtml和projectMasterNew.js
CreateProject.cshtml

projectMasterNew.js

上述jquery代码一直工作到今天早上。
问题:
该脚本在页面加载时被访问,因为我在函数之前收到了警报。但是当我更改AccountName下拉列表中的值时,更改事件没有触发。 我尝试按如下方式调用change方法:
1. 2.
没有结果。

因此,经过一点研究,我实现了以下功能

    function DmList() {
        alert($("#Account_AccountName").val());
        var jsonData = { account: $("#Account_AccountName").val() };

        getJsonCall("Project Creation", getDmUrl, jsonData, function (response) {
            var dName = $('#Account_DMName');
            $.each(response, function (index, item) { 
                dName.append($('').text(item.DMName).val(item.DMId));
            });
            alert("Dropdwn update");
        });
        alert("Success");
    }
    @Html.DropDownListFor(model => model.Account.AccountName, new SelectList(ViewBag.GetAccount, "AccountId", "AccountName"), new { onchange = "DmList()"})
    


正如您所注意到的,jquery函数没有在文档就绪时调用。这是因为,添加该选项也会引发错误

对于那些好奇的人,我的BundleConfig.cs 而my_Layout.cshtml


我想知道为什么这是一个问题,我能做些什么来避免将来出现这种差异?

您的
更改
事件没有触发,因为您有一个额外的
false
作为更改事件绑定的最后一个参数。我不知道为什么

还要确保页面中没有任何其他脚本错误

这应该行得通

$(document).ready(function () {

     $("#Account_AccountName").on("change", function () {
        alert($(this).val());
        var jsonData = { account: $(this).val() };
        // your get JSON call goes here

        alert("Success");
    });
});
另外,在使用
getDmUrl
变量之前,最好先定义它。我建议使用javascript名称空间,而不是简单地使用全局变量

<script>
     var myProj = myProj || {};
     myProj.getDmUrl = '@Url.Action("GetDMList", "Project", new { area = "Masters" })';
</script>
<script src="~/Scripts/DMS/projectMasterNew.js"></script>

var myProj=myProj |{};
myProj.getDmUrl='@Url.Action(“GetDMList”,“Project”,new{area=“Masters”});

在您的
projectMasterNew.js
中,使用
myProj.getDmUrl
进行ajax调用。

您的
change
事件没有触发,因为您有一个额外的
false
作为更改事件绑定的最后一个参数。我不知道为什么

还要确保页面中没有任何其他脚本错误

这应该行得通

$(document).ready(function () {

     $("#Account_AccountName").on("change", function () {
        alert($(this).val());
        var jsonData = { account: $(this).val() };
        // your get JSON call goes here

        alert("Success");
    });
});
另外,在使用
getDmUrl
变量之前,最好先定义它。我建议使用javascript名称空间,而不是简单地使用全局变量

<script>
     var myProj = myProj || {};
     myProj.getDmUrl = '@Url.Action("GetDMList", "Project", new { area = "Masters" })';
</script>
<script src="~/Scripts/DMS/projectMasterNew.js"></script>

var myProj=myProj |{};
myProj.getDmUrl='@Url.Action(“GetDMList”,“Project”,new{area=“Masters”});

在您的
projectMasterNew.js
中,使用
myProj.getDmUrl
进行ajax调用。

当您说它一直工作到今天早上时,发生了什么变化?你能回顾一下修订历史并做一个区分还是责备吗?@Sanketh.K.Jain你能在html呈现后分享它的屏幕截图吗。您可能使用了错误的ID。您在哪里添加了
projectMasterNew.js
?我看不见it@Sanketh.K.Jain有控制台错误吗?@SimonPrice没有任何代码更改。确切地说,只是进来试着运行它。当你说它一直工作到今天早上,发生了什么变化?你能回顾一下修订历史并做一个区分还是责备吗?@Sanketh.K.Jain你能在html呈现后分享它的屏幕截图吗。您可能使用了错误的ID。您在哪里添加了
projectMasterNew.js
?我看不见it@Sanketh.K.Jain有控制台错误吗?@SimonPrice没有任何代码更改。实际上,我只是进来试着运行它。
bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-{version}.js"));
@Scripts.Render("~/bundles/jquery")
$(document).ready(function () {

     $("#Account_AccountName").on("change", function () {
        alert($(this).val());
        var jsonData = { account: $(this).val() };
        // your get JSON call goes here

        alert("Success");
    });
});
<script>
     var myProj = myProj || {};
     myProj.getDmUrl = '@Url.Action("GetDMList", "Project", new { area = "Masters" })';
</script>
<script src="~/Scripts/DMS/projectMasterNew.js"></script>