-1

Я использую частичный вид, чтобы отображать представление внутри другого, и частичный вид имеет обратную сторону, поэтому, как получить значение этого раскрывающегося списка, на самом деле я хочу отобразить другое раскрывающееся меню, основанное на значении первого раскрывающегося списка, здесь приведено мое детальное описание кода :Как получить выбранное значение выпадающего списка при использовании частичного представления в mvc?

частичный вид:

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <link href="~/Content/control.css" rel="stylesheet" /> 
    <fieldset> 
     <legend></legend> 
     <div class="editor-label"> 
      @Html.LabelFor(model => model.CompanyID , new {@class="lbldis"}) 
     </div> 
     <div class="editor-field"> 
      @Html.DropDownListFor(Model => Model.CompanyID, new SelectList(ViewBag.CompanyList as System.Collections.IEnumerable, "_CompanyID", "Company"), "- Select -",new { @class = "txtbox",id="ddln" }) 
      @Html.ValidationMessageFor(model => model.CompanyID) 
     </div> 
     <br /> 
     <div> 
      @Html.DropDownListFor(Model => Model.ClientID, new SelectList(ViewBag.ClientList as System.Collections.IEnumerable, "_ClientID", "Company"), "- Select -",new { @class = "txtbox" }) 
      @Html.ValidationMessageFor(model => model.ClientID) 
     </div> 
    </fieldset> 
} 

и вид, в котором я зову это частичный вид: и имя этой точки зрения является индекс:

<div id="tab-1"> 
    @Html.Partial("~/Views/PartialViews/_company.cshtml")    
</div> 

Все выпадающие работают отлично и получениезначения и все, кроме проблемы только с javascript. Пожалуйста, помогите мне, где написать javascript i.e в частичном представлении или в Индексе, где я вызываю свое частичное представление и как отображать другое раскрывающееся меню, основанное на значении первого.

То, что я пытался до сих пор ниже:

<script type="text/javascript"> 
    $("#ddln").change(function onchange(dropdown) { 
     var myindex = dropdown.selectedIndex; 
     var SelValue = dropdown.options[myindex].value; 
     if (SelValue == 'Client3') 
     { 
      var see = document.getElementById("ddln"); 
      see.style.display = ""; 
     } 
    }) 
</script> 
+0

Предположим, эти опечатки, но убедитесь, что его 'модель => model.CompanyID' (в нижнем регистре«М», или просто' т => m.CompanyID'), а второй выпадающий список является обязательным для одной и той же собственности как первый !. У вас сценарий не имеет смысла. Вы хотите заполнить второе раскрывающееся меню клиентами на основе ценности выбранной компании? –

+0

Согласитесь с @StephenMuecke ... Также, пожалуйста, проверьте идентификатор элемента ddl, так как элемент принимает имя и id = в имя свойства, если явно не указано – Tushar

+0

Если вы хотите, чтобы выбранное значение было тогда его '$ ('# CompanyID'). (function() {var id = $ (this) .val();}); 'но что вы хотите делать с этим? –

ответ

-1

Если вы используете 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(); 
      } 
     }); 
    }); 
+0

Почему люди с пониженным голосом? – Utkarsh

+0

Не я, но, несомненно, потому что это не имеет никакого отношения к вопросу ОФ. (1) Делегирование событий не требуется (элемент существует в DOM), (2) вы обрабатываете неправильный элемент и (3) вы не дали ответа, показывающего, как показать/скрыть второй выпадающий список –

+0

эй ребята этот код работает: , но проблема в том, когда я даю, если условие он перестает работать, так что если вам может помочь на этом – parth7253

0

Чтобы скрыть или отобразить 2-го раскрывающегося списка на основе значения в первом:

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(); 
    } 
}); 

Edit

На основе параметров порядка последнее изменение, которое изменило атрибут id по умолчанию от id="Company" до id="ddln", код будет изменен до

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