Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 Jquery在ASP.NET MVC中不工作_Javascript_Jquery_Asp.net_Asp.net Mvc - Fatal编程技术网

Javascript Jquery在ASP.NET MVC中不工作

Javascript Jquery在ASP.NET MVC中不工作,javascript,jquery,asp.net,asp.net-mvc,Javascript,Jquery,Asp.net,Asp.net Mvc,我有一个模式弹出窗口,我想在其中使用一些级联下拉列表 当我将页面呈现为常规视图时,下拉菜单工作正常,但当我在模式弹出窗口中将其呈现为部分视图时,我将失去该功能 脚本现在似乎根本没有运行 以下是选择下拉值时应运行的代码: $("#artistSelect").change(function () { if ($(this).val() != "") { $("#pieceSelect").empty(); $("#productSelect").empty(); $.aja

我有一个模式弹出窗口,我想在其中使用一些级联下拉列表

当我将页面呈现为常规视图时,下拉菜单工作正常,但当我在模式弹出窗口中将其呈现为部分视图时,我将失去该功能

脚本现在似乎根本没有运行

以下是选择下拉值时应运行的代码:

$("#artistSelect").change(function () {
if ($(this).val() != "") {
    $("#pieceSelect").empty();
    $("#productSelect").empty();
    $.ajax({
        type: 'POST',
        url: '@Url.Action("GetMasterImages")',
        dataType: 'json',
        data: {
            artistId: $(this).val()
        },
        success: function (masterImages) {
            $(masterImages).each(function (i, masterImage) {
                $("#pieceSelect").append('<option value="' + masterImage.Value + '">' + masterImage.Text + '</option');
            });
            $("#productSelect").append('<option value="">-- Select Piece --</option>');
        },
        error: function (ex) {
            alert('failed to get piece list.' + ex);
        }

    });
} else {

    $("#pieceSelect").empty();
    $("#productSelect").empty();
    $("#productSelect").append('<option value="">-- Select Artist --</option>');
    $("#pieceSelect").append('<option value="">-- Select Artist --</option>');
}
return false;
});

$("#pieceSelect").change(function () {
if ($(this).val() != "") {
    $("#productSelect").empty();
    $.ajax({
        type: 'POST',
        url: '@Url.Action("GetProducts")',
        dataType: 'json',
        data: {
            imageMasterId: $(this).val()
        },
        success: function (products) {
            $(products).each(function (i, product) {
                $("#productSelect").append('<option value="' + product.Value + '">' + product.Text + '</option');
            });
        },
        error: function (ex) {
            alert('failed to get product list.' + ex);
        }
    });
} else {
    $("#productSelect").empty();
    $("#productSelect").append('<option value="">-- Select Piece --</option>');
}
return false;
});
$(“#artistSelect”)。更改(函数(){
if($(this.val()!=“”){
$(“#分段选择”).empty();
$(“#产品选择”).empty();
$.ajax({
键入:“POST”,
url:“@url.Action”(“GetMasterImages”),
数据类型:“json”,
数据:{
artistId:$(this.val()
},
成功:功能(masterImages){
$(主图像)。每个(功能(i,主图像){

$(“#pieceSelect”).append(“”+masterImage.Text+”这是因为在执行jQuery代码后加载了部分视图。因此更改事件不会与下拉列表绑定。如果在部分视图中创建脚本标记并将jQuery放在该标记中,则应该可以工作。如果希望将脚本保留在同一文件中,请使用事件触发器$('body')。关于('change','#Artist',function(e){//PUT YOUR CODE HERE})谢谢。这让它起作用了。我以前曾尝试将脚本移动到部分视图文件中,但我将它们放置在@部分,这导致它们不再起作用。
<div class="form-group">
<div class="row">
    <div class="col-md-3">
        @Html.DropDownList("Artist", Model.Dropdowns.ArtistItems, new { @id = "artistSelect", @class = "form-control" })
    </div>
    <div class="col-md-3">
        @Html.DropDownList("Piece", new List<SelectListItem> { new SelectListItem { Text = "-- Select Artist --", Value = "" } }, new { @id = "pieceSelect", @class = "form-control" })
    </div>
    <div class="col-md-3">
        @Html.DropDownListFor(m => m.CustomerItem.ItemID, new List<SelectListItem> { new SelectListItem { Text = "-- Select Artist --", Value = "" } }, new { @id = "productSelect", @class = "form-control" })
    </div>
</div>