Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 在mvc中使用局部视图时,如何获取下拉列表的选定值?_Javascript_Jquery_Asp.net Mvc 4_Partial Views_Cascadingdropdown - Fatal编程技术网

Javascript 在mvc中使用局部视图时,如何获取下拉列表的选定值?

Javascript 在mvc中使用局部视图时,如何获取下拉列表的选定值?,javascript,jquery,asp.net-mvc-4,partial-views,cascadingdropdown,Javascript,Jquery,Asp.net Mvc 4,Partial Views,Cascadingdropdown,我使用“部分视图”在另一个视图中显示一个视图,而“部分视图”具有下拉列表,因此如何获取该下拉列表的值实际上我想根据第一个下拉列表的值显示另一个下拉列表这是我的详细代码: 局部视图: @使用Html.begin{ @Html.ValidationSummarytrue @Html.LabelFormodel=>model.CompanyID,新的{@class=lbldis} @Html.DropDownListForModel=>Model.CompanyID,新建SelectListViewB

我使用“部分视图”在另一个视图中显示一个视图,而“部分视图”具有下拉列表,因此如何获取该下拉列表的值实际上我想根据第一个下拉列表的值显示另一个下拉列表这是我的详细代码:

局部视图:

@使用Html.begin{ @Html.ValidationSummarytrue @Html.LabelFormodel=>model.CompanyID,新的{@class=lbldis} @Html.DropDownListForModel=>Model.CompanyID,新建SelectListViewBag.CompanyList作为System.Collections.IEnumerable,_CompanyID,Company,-Select-,新建{@class=txtbox,id=ddln} @Html.ValidationMessageFormodel=>model.CompanyID @Html.DropDownListForModel=>Model.ClientID,新的SelectListViewBag.ClientList作为System.Collections.IEnumerable,_ClientID,Company,-Select-,新的{@class=txtbox} @Html.ValidationMessageFormodel=>model.ClientID } 我称之为部分视图的视图:该视图的名称是索引:

@Html.Partial~/Views/PartialViews/_company.cshtml 所有的下拉菜单都运行良好,并且可以获取值,但唯一的问题是javascript。请帮助我在哪里编写javascript,即在部分视图中或在我调用部分视图的索引中,以及如何根据第一个下拉列表的值显示另一个下拉列表

到目前为止,我已经尝试了以下内容:

$ddln.changefunction onchangedropdown{ var myindex=dropdown.selectedIndex; var SelValue=dropdown.options[myindex].value; 如果SelValue=='Client3' { var see=document.getElementByIdddln; 请参见.style.display=; } }
要根据第一个下拉列表中的值隐藏或显示第二个下拉列表,请执行以下操作:

var clients = $('#ClientID');
$('#CompanyID').change(function() {
  var id = $(this).val();
  if (id == 'Client3') { // assume you want to hide it if the selected option value is 'Client3'
    clients.hide();
  } else {
    clients.show();
  }
});
编辑

根据OP上次编辑将默认id属性从id=Company更改为id=ddln,代码将修改为

$('#ddln').change(function() { ...

如果您使用的是jquery,则可以使用on函数从主视图处理部分视图的控件。早在1.9之前,您就可以使用live,但自那以后,它就被弃用了

  $(document).ready(function () {
        $('body').on("change", "#ddln", function (evt) {

            if ($(this).val() != 'val1')  //assume if val1 is the value against which we wish to show. 
            {
                $('#ndl').show();
            }
            else
            {
                $('#ndl').hide();
            }
        });
    });

假设这些都是打字错误,但请确保其model=>model.CompanyID小写字母m,或者仅为m=>m.CompanyID,并且第二个下拉列表与第一个下拉列表绑定到相同的属性!。你的剧本毫无意义。是否要根据所选公司的值使用客户端填充第二个下拉列表?同意@StephenMuecke…还请检查ddl的id,因为元素采用名称,如果未明确指定id=to属性名称如果需要所选值,则选择其$'CompanyID'。changefunction{var id=$this.val;};但是你想用它做什么呢?很抱歉,我是mvc新手,但我已经更改了model=>model.clientid的代码,并且我只想在选择了特定公司名称时显示客户下拉列表,请在此向我发送hlp!!谢谢大家的快速回复!!这是您最后一次编辑-为什么要给它一个不同的id属性?i、 e.将默认的id=CompanyID更改为id=ddln?不是我,但毫无疑问,因为这与OP的问题无关。1不需要事件委托—元素存在于DOM中,2您处理了错误的元素,3您没有给出显示/隐藏第二个dropdownhy代码的答案:var$tt=jQuery.noConflict$ttddln.changefunction{$ttndl.show}但问题是,当我给出if条件时,它停止工作,因此如果您能提供帮助,那么如何在mvc中写入dropdownlist 1.selectedvalue.tostring??事件委派不是必需的,但也不会带来任何危害。我写的代码只是最初的问题,这不是很清楚。现在我更新了答案,这与OP的问题一致。请再次向上投票。你真的认为第一个下拉列表有文本选项吗?