2013-02-25 3 views
1

У меня есть страница, где я создал форму. У меня есть 2 dropdownlists (Список профилей &).Как проверить, выбран ли элемент в списке dropdownList и включить/отключить текстовое поле, если выбран или не выбран listitem

У меня есть 3 текстовых поля в этой форме. Что я хочу делать:

У меня есть 2 коробки, в которых я создаю новый профиль и новую группу зарплат, а новый профиль добавляется к профилисту, а группа зарплаты добавляется в список зарплат.

Теперь я хочу, чтобы третий ящик был отключен. Пока не будет выбран элемент как для зарплаты, так и для профилиста. Когда элементы выбраны, текстовое поле должно быть включено.

Мое мнение:

@model KUMA.Models.EmployeeCardAdminModel 

@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<div class="row bgwhite"> 
    <div class="twelve columns"> 
     <h2>Administration KUMA</h2> 
     <div class="row bgwhite">@using (Html.BeginForm("Index", "Admin"))     
      { 
       <div class="three columns"> 
        @Html.DropDownList("UserId", (SelectList)ViewBag.UserId, "--Välj anställd--") 
       </div> 
       <div class="three columns" style="margin-right:457px !important;"> 
        @Html.DropDownList("Salaryid", (SelectList)ViewBag.Salaryid, "--Välj LöneGrupp--") 
        <input style="float:left;" type="submit" value="Knyt" /> 
       </div> 
      } 

      @using (Html.BeginForm("Kompetens", "KumaAdmin")) 
      { 
       <div class="three columns" style="margin-right: 627px;"> 
        <h6>Kompetenser</h6> 
        <div style="width:456px;"> @Html.ListBox("kompetensId", (SelectList)ViewBag.KomId, new { placeholder = "Kompetenser" })</div><br/> 
        @Html.TextBoxFor(mm => mm.Kompetens, new { placeholder = "Ange Kompetens" }) 
        @*@Html.TextBoxFor(mm => mm.KompetensTest, new { placeholder = "Kompetens" }) 
        @Html.TextAreaFor(mm => mm.KompetensTest, new { placeholder = "Kompetens", rows="5", cols="80" })*@ 
        <input type="submit" style="margin-right: 205px;" value="Skapa"/><br/><br/> 
       </div> 
      } 
       @using (Html.BeginForm("Index", "KumaAdmin")) 
       { 
        <div class="three columns" style="margin-right: 627px;"> 
         @* <input name="profileTxtBox"type="text" style="width:97px; height:28px;" value="" />*@ 
         @Html.TextBoxFor(mm => mm.Profile, new { placeholder = "Ange Profil" })      
         @Html.TextBoxFor(mm => mm.SalaryGroup, new { placeholder = "Ange LöneGrupp" }) 
         <input type="submit" value="Skapa"/> 
        </div> 
       } 
      @* <div class="one columns" style=" margin-left: 100px;margin-right: 164px; margin-top: -33px;"> 
       <input name="profileTxtBox"type="submit" style="width:100px;" value="Add" /> 
      </div>*@ 
      <div class="five columns"></div> 
     </div> 
    </div 

>

Контроллер:

public class AAdminController : Controller 
    { 
     static List<Employee> list = new List<Employee>(); 
     //EmployeeCardAdminModel employee = new EmployeeCardAdminModel(); 
     // 
     // GET: /Admin/ 
     //[Authorize(Roles = "Admin")] 

     [HttpGet] 
     public ActionResult Index() 
     { 
      ViewBag.UserId = new SelectList(list, "Id", "Profile"); 
      ViewBag.Salaryid = new SelectList(list, "Id", "SalaryGroup"); 
      ViewBag.KomId = new SelectList(list, "Id", "Kompetens"); 


      ModelState.Clear(); 

      return View("Index"); 
     } 

     [HttpPost] 
     // submit for profile & salary box 
     public ActionResult Index(Models.EmployeeCardAdminModel e) 
     { 
      if (string.IsNullOrEmpty(e.Profile) == false && string.IsNullOrEmpty(e.SalaryGroup) == false) 
      { 
       // adda a new employye to the list and set the values from the parameter to the model 
       list.Add(new Employee 
        { 
         Id = e.Id + 1, 
         Profile = e.Profile, 
         SalaryGroup = e.SalaryGroup 
        }); 
      } 
      return (Index()); 
     } 

     [HttpPost] 
     // submit for knowledge box 
     public ActionResult Kompetens(Models.EmployeeCardAdminModel e) 
     { 
      if (string.IsNullOrEmpty(e.Kompetens) == false) 
      { 
       // adda a new employye to the list and set the values from the parameter to the model 
       list.Add(new Employee 
       { 
        Kompetens = e.Kompetens 
       }); 
      } 
      return (Index()); 
     } 

И, наконец, моя модель (обратите внимание, что класс emplyee такая же, как моя модель, с теми же свойствами но я считаю, что для наилучшей практики лучше всего их отделить.):

public class EmployeeCardAdminModel 
    { 

     public string Profile { get; set; } 
     public int Id { get; set; } 
     public string SalaryGroup { get; set; } 
     public string Kompetens { get; set; } 

    } 

способ, которым я мог бы нормально это сделать, чтобы вызвать нужные списки и проверить, больше ли выбранный индекс больше нуля, но проблема в том, что я не знаю, как получить доступ к списку из контроллера правильно, поэтому я может получить доступ к элементам в нем. также как я могу получить идентификатор в текстовых окнах? Мне нужно это, чтобы иметь возможность отключить/включить правильное текстовое поле.

Im довольно новый для mvc, и я узнаю, делая проекты, поэтому все советы приветствуются.

Спасибо!

ответ

1

Через некоторое время я понял, что без сценария не было хорошего способа сделать это.

Так я решил его с JQuery, как это:

$(function() { 

    $(".list select").change(function() { 
     if ($(".list1 select").val().length == 0 || $(".list2 select").val().length == 0) { 

      $(".kompetensbox input").attr('disabled', 'disabled'); 
     } 

     else { 
      $(".kompetensbox input").removeAttr('disabled'); 
     } 
    }) 
}); 

просмотра изменений (добавлено классами CSS):

 <div class="three columns list list1"> 
      @Html.DropDownList("UserId", (SelectList)ViewBag.UserId, "--Välj profilgrupp--") 
     </div> 
     <div class="three columns list list2" style="margin-right:457px !important;"> 
      @Html.DropDownList("Salaryid", (SelectList)ViewBag.Salaryid, "--Välj LöneGrupp--") 
      <input style="float:left;" type="submit" value="Knyt" /> 
     </div> 

Надеется, что это помогает другим, которые пытаются то же самое.

Смежные вопросы