2015-06-21 139 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

相關問題