2015-06-21 142 views
1

我想创建一个htmlhelpers元素,具体取决于下拉列表的值。下面是代码:是否可以动态创建htmlhelpers?

下拉

<select id="pracownicy"> 

     <option value="biurowy" style="color: black">Pracownik biurowy</option> 
     <option value="przewodnik" style="color: black">Przewodnik</option> 
    </select> 

和脚本是这样的:

<script> 
     function pracownicy() { 
      var x = document.getElementById("pracownicy"); 

      if (x.value.equalTo("biurowy")) 
      { 



      } 

      if (x.value.equalTo("przewodnik")) { 

      } 
     } 


    </script> 

里面这些脚本我想动态创建这样的事情:

对于biurowy值:

<div class="form-group"> 

      @Html.LabelFor(model => model.Pracownik_biurowy.Nazwa_uzytkownika, htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.Pracownik_biurowy.Nazwa_uzytkownika, new { htmlAttributes = new { @class = "form-control" } }) 
       @Html.ValidationMessageFor(model => model.Pracownik_biurowy, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

对于przewodnik值:

<div class="form-group"> 
      @Html.LabelFor(model => model.Przewodnik.Uprawnienia, htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.Przewodnik.Uprawnienia, new { htmlAttributes = new { @class = "form-control" } }) 
       @Html.ValidationMessageFor(model => model.Przewodnik.Uprawnienia, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

如何做到这一点?

回答

1

Here是一个工作示例

function handleChange(){ 

    var strg=""; 
    $("select option:selected").each(function(){ 
     strg = strg + this.value; 
    }); 

    if (strg =="biurowy"){ 
     alert('adding1'); 
     $('#cont').append('<p>yourForm1</p>'); 
    } 

    if (strg =="przewodnik"){ 
       alert('adding2'); 
     $('#cont').append('<p>yourForm2</p>'); 
    } 


} 

$('#pracownicy').change(handleChange); 

你需要与你的表单代码替换<p>yourFormX</p>

,我稍微改变下拉代码,请注意如下:

<select id="pracownicy"> 
    <option value="unselected" style="color: black">Not Selected</option> 
    <option value="biurowy" style="color: black">Pracownik biurowy</option> 
    <option value="przewodnik" style="color: black">Przewodnik</option> 
</select> 
+0

感谢它的作品!但是,你能帮助我如何避免这些表单的重复,以及如何使每个表单可以一次显示? – TjDillashaw

+0

如果您打算始终显示其中一种表单,则可以从下拉菜单中删除未选定的选项。假设列表中的顶级项目是biurowy。然后,您可以在cont部分中默认添加相关表单。当用户从下拉菜单中选择另一个选项时,该表单将被替换为另一个选项。如果用户返回到第一个选项,则内容将再次替换为第一个表单。你能理解这个吗 ? =] – Alp

+0

你们,但我怎样才能“取代”这种形式? – TjDillashaw

相关问题