2014-06-20 52 views
0

當我在mypage中的Im時,我有一個頁面(「mypage.cshtml」)和兩個局部視圖頁面(partial1.cshtml,partial2.cshtml) 在模態(引導模式)中用@ Html.Partial(「patial1」)調用partial1的模態。它由html組成。當我點擊這個模式上的一個按鈕時,它會調用另一個由partial2組成的模態。mvc在jQuery中獲取不同cshtml中的元素值

這是問題;當我加載頁面開始(在我的頁面)時,我需要獲得站在第二模式中的複選框的值,即partial2。 期間,我認爲這模式我能得到這個這個值:

$("input[type='checkbox'][id='4']").val(); 

它給了我,我希望,但在開始時(在mypage.cshtml)這將返回「未定義」的值:S 我不能明白這stuation這兩個模態位於mypage,但爲什麼我不能得到這些元素的值,直到我達到他們?

這裏查看我的空間:

<div id="stack1" class="modal fade" tabindex="-1" data-width="400"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button> 
       <h4 class="modal-title">@Model.Kurulus.TESIS_ADI</h4> 
      </div> 
      <div class="modal-body"> 
       <form id="formKaydet" method="post" action="../KurulusBilgileri/KurulusBilgileriniGuncelle"> 
        <div class="row"> 
         <div class="col-md-12"> 
          @Html.Partial("KurulusBilgileriniGuncelle", Model) 
         </div> 
         <div class="modal-footer"> 
          <input type="hidden" name="SANAYI_TIPI" id="input_id" /> 
          <input type="hidden" name="SANAYI_TIPI_DIGER" id="input_sanayitipi" /> 
          <button type="button" data-dismiss="modal" class="btn default">Geri</button> 
          <a class="btn orange" onclick="sanayitipleriKaydet()">Kaydet A</a> 


         </div> 
        </div> 
       </form> 
      </div> 
     </div> 
    </div> 
</div> 
<div id="stack2" class="modal fade" tabindex="-1"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button> 
       <h4 class="modal-title">@Model.Kurulus.TESIS_ADI</h4> 
      </div> 
      <div class="modal-body"> 
       <div class="row"> 
        <div class="col-md-12"> 
         @Html.Partial("SanayiTipiSecim", Model.SanayitipiModel) 
        </div> 
       </div> 
      </div> 
      <div class="modal-footer"> 
       @*<button type="button" data-dismiss="modal" class="btn">Close</button> 
        <button type="button" class="btn yellow">Ok</button>*@ 
      </div> 
     </div> 
    </div> 
</div> 

和我的第二個模式(SanayiTipiSecim)

<table class="table-full-width"> 
    <thead> 
     <tr> 
      <th></th> 
      <th><strong>Sanayici Tipi</strong></th> 
      <th><strong>Açıklama</strong></th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td> 
       <input type="checkbox" name="SANAYI_TIPI" onclick="javascript:sanayitipiTotextarea(1)" id="1" value="Boya Sanayi"> 
      </td> 
      <td> 
       Boya Sanayi 
      </td> 
      <td> 
       Boya üretimi yapan imalathaneler 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="checkbox" name="SANAYI_TIPI" onclick="javascript:sanayitipiTotextarea(2)" id="2" value="Enerji üretimi ve dağıtımı"> 
      </td> 
      <td> 
       Enerji üretimi ve dağıtımı 
      </td> 
      <td> 
       Ör. Enerji üretim merkezleri, enerji ara istasyonları vb? 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="checkbox" name="SANAYI_TIPI" id="3" onclick="javascript:sanayitipiTotextarea(3)" value="Elektrik ve Elektronik Mühendisliği"> 
      </td> 
      <td> 
       Elektrik ve Elektronik Mühendisliği 
      </td> 
      <td> 
       Elektronik parçaların üretimi vb? 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="checkbox" name="SANAYI_TIPI" id="4" onclick="javascript:sanayitipiTotextarea(4)" value="Genel Mühendislik, imalat ve montaj"> 
      </td> 
      <td> 
       Genel Mühendislik, imalat ve montaj 
      </td> 
      <td> 
       Herhangi bir mühendislik aktivitesi, üretim veya montaj vb? 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="checkbox" name="SANAYI_TIPI" id="5" onclick="javascript:sanayitipiTotextarea(5)" value="Gıda ve içecek"> 
      </td> 
      <td> 
       Gıda ve içecek 
      </td> 
      <td> 
       Gıda, alkollü içki vb? 
      </td> 

腳本塊在第一頁:

<script src="~/Scripts/js/kurulusbilgileri.js"></script> 
<script> 
    sanayitipleriKaydet = function() { 
     debugger 
     var data = new Object() 
     data.ISIM = $("input[name='ISIM']").val(); 
     data.ADRES_METIN = $("input[name='ADRES_METIN']").val(); 
     data.TELEFON = $("input[name='TELEFON']").val(); 
     data.FAKS = $("input[name='FAKS']").val(); 
     data.E_POSTA = $("input[name='E_POSTA']").val(); 
     data.SORUMLU_ISIM = $("input[name='SORUMLU_ISIM']").val(); 
     data.SORUMLU_SOYISIM = $("input[name='SORUMLU_SOYISIM']").val(); 
     data.FAALIYET_ALANI = $("input[name='FAALIYET_ALANI']").val(); 
     data.CEVRE_BILGI = $("input[name='CEVRE_BILGI']").val(); 
     data.BELEDIYE_MUCAVIR_ALAN = $("input[name='BELEDIYE_MUCAVIR_ALAN']:checked").val(); 
     debugger 
     data.OSB_YERLESIK = $("input[name='OSB_YERLESIK']:checked").val(); 
     data.KIYI_TESISI = $("input[name='KIYI_TESISI']:checked").val(); 
     data.VERSIYON = $("input[name='VERSIYON']:checked").val(); 
     data.SANAYI_TIPI = window.localStorage.getItem("sanayitipiid"); 
     window.localStorage.removeItem("sanayitipiid"); 
     debugger 

     var jsondata = JSON.stringify(data); 
     $.ajax({ 
      type: "POST", 
      contentType: 'application/json', 
      url: "/KurulusBilgileri/KurulusBilgileriniGuncelle", 
      data: jsondata, 
      success: function (result) { 
       debugger 
       var jsondata = JSON.parse(result) 
       if (jsondata.Passed) { 
        debugger 
        $('#tdISIM').empty(); 
        $('#tdISIM').append(data.ISIM); 
        $('#tdADRES_METIN').empty(); 
        $('#tdADRES_METIN').append(jsondata.data.ADRES_METIN); 
        $('#tdTELEFON').empty(); 
        $('#tdTELEFON').append(jsondata.data.TELEFON); 
        $('#tdFAKS').empty(); 
        $('#tdFAKS').append(jsondata.data.FAKS); 
        $('#tdE_POSTA').empty(); 
        $('#tdE_POSTA').append(jsondata.data.E_POSTA); 
        $('#tdSORUMLU_ISIM').empty(); 
        $('#tdSORUMLU_ISIM').append(jsondata.data.SORUMLU_ISIM); 
        $('#tdSANAYI_TIPI > #tdtxtSANAYI_TIPI').empty(); 
        $('#tdSANAYI_TIPI > #tdtxtSANAYI_TIPI').append(jsondata.data.SANAYI_TIPI);//sanayitipi id si... 
        $('#tdFAALIYET_ALANI > #tdtxtFAALIYET_ALANI').empty(); 
        $('#tdFAALIYET_ALANI > #tdtxtFAALIYET_ALANI').append(jsondata.data.FAALIYET_ALANI); 
        $('#tdCEVRE_BILGI > #tdtxtCEVRE_BILGI').empty(); 
        $('#tdCEVRE_BILGI > #tdtxtCEVRE_BILGI').append(jsondata.data.CEVRE_BILGI); 
        debugger 

        if (jsondata.data.BELEDIYE_MUCAVIR_ALAN == "1") { 
         $("#tdBELEDIYE_MUCAVIR_ALAN > input[name='radioBelediyeMucavirAlan']").prop('checked', true); 
        } 
        else 
         $("#tdBELEDIYE_MUCAVIR_ALAN > input[name='radioBelediyeMucavirAlan']").prop('checked',false); 
        if (jsondata.data.OSB_YERLESIK == "1") { 
         $("#tdOSB_YERLESIK > input[name='radioOsbYerlesik']").prop('checked', true); 
        } 
        else 
         $("#tdOSB_YERLESIK > input[name='radioOsbYerlesik']").prop('checked',false); 
        if (jsondata.data.KIYI_TESISI == "1") { 
         $("#tdKIYI_TESISI > input[name='radioKiyiTesisi']").prop('checked', true); 
        } 
        else 
         $("#tdKIYI_TESISI > input[name='radioKiyiTesisi']").prop('checked',false); 
        if (jsondata.data.VERSIYON == "1") { 
         $("#tdVERSIYON > input[name='radioVersion']").prop('checked', true); 
        } 
        else 
         $("#tdVERSIYON > input[name='radioVersion']").prop('checked',false); 

       } 
      }, 
      error: function() { 
       alert("ajax process in error"); 
      } 
     }); 
    } 

</script> 

kurulusbilgileri.js:

$(function() { 
    $("#btnSanayiTipiKaydet").on('click', sanayitipleriKaydet) 
}); 

sanayiTipiTextGetir = function (id) 
{ 
    var text = $('input[id=' + id + ']').val(); 
    debugger; 
    return text; 
} 
sanayitipilistesinigoster = function() { 
    $("#stack2").show(); 
} 

sanayitipiTotextarea = function (id) { 
    $("#divSanayiTipi").show(600, null); 

    var sanayitipi = $("#" + id).val(); 
    window.localStorage.setItem("sanayitipiid", id); 

    $("#input_sanayitipi").val(sanayitipi); 
    $("#input_id").val(id); 
    $("#stack2").modal('toggle'); 
} 
+0

如果您發佈所有視圖(渲染和加載它們的部分)的代碼,我可以給出更好的答案。 –

+0

我用我的開始頁面和第二部分編輯。第一模態是否必要?如果是,我可以再次編輯它。 – TyForHelpDude

回答

0

既然你通過模態加載你的partial,我假設實際加載是使用AJAX完成的。這意味着當你第一次加載你的HTML頁面(最初的頁面)時,partial不是DOM的一部分(可能沒有從服務器請求)。這又意味着你checkbox也不是DOM的一部分,因此返回爲undefined

+0

我使用ajax只是發佈數據的服務器,但這些元素的屬性是靜態的;()爲什麼他們不是DOM的一部分?你能建議我的解決方案嗎? – TyForHelpDude

+0

當你點擊按鈕時,模式加載,對吧?然後如Andrei所說,當主頁面加載完成時,模式還沒有加載到DOM中。 –

+0

部分的HTML不是初始頁面的一部分。它會在你點擊按鈕後加載。瀏覽器向服務器請求代碼,並在接收到代碼後,將HTML插入到DOM中。只有這樣纔可以使用。它是否靜止並不重要。瀏覽器無法區分差異。 –