2016-02-12 24 views
5

Mam pole tekstowe, w którym użytkownik może wprowadzić notatkę. Ale ten tekst będzie wyświetlany tylko wtedy, gdy pole wyboru jest zaznaczone, w przeciwnym razie jest ukryte. Po kliknięciu przycisku zapisu i zapisaniu wartości w bazie danych, textarea zwraca pustą wartość.Ustawienia textarea do wyświetlenia: żadna nie traci wartości podczas próby zapisania

Kod tekstowego:

<textarea class="mceEditorWide" id="txtAddDetailNote" rows="30" cols="50" style="width:100%;display:none" runat="server"></textarea> 

wyboru, które ukrywa/pokazuje tekstowe:

$('#<%= chkNotes.ClientID %>').change(function() { 
     if($(this).is(":checked")) { 
      $('#<%= txtAddDetailNote.ClientID %>').show(); 
      } 
     else { 
       $('#<%= txtAddDetailNote.ClientID %>').hide(); 

      } 
    }); 

Kiedy usunąć display:none z textarea, zapisuje wartość. Ale z display:none w kodzie, zwraca tylko pustą wartość, mimo że tekst jest wyświetlany po kliknięciu przycisku zapisu.

+0

Czy przekształcasz pole tekstowe na edytor tekstu sformatowanego za pomocą edytora MCE? – Vamsikrishna

+0

@Vamsikrishna Nie jestem pewien, nie napisałem kodu dla edytora mce – user123456789

+0

Ok, możesz usunąć klasę dla pola tekstowego i raz sprawdzić – Vamsikrishna

Odpowiedz

2

Odpowiedź na to pytanie: nie Wciąż pewny dlaczego ustawiania textarea do display:none został powodując jej stracić wartość, ale ustawienie wyświetlania znacznika <tr> rozwiązało ten problem.

Kod tekstowego:

<tr class ="trNotes" style="display:none"> 
      <td class="tblAddDetail" colspan="10"> 
       <textarea class="mceEditorWide" id="txtAddDetailNote" rows="30" cols="50" style="width:100%;" runat="server"></textarea> 
      </td> 
     </tr> 

Kod ukryć/pokazać go:

$('#<%= chkNotes.ClientID %>').change(function() { 
     if($(this).is(":checked")) { 
       $('.trNotes').show(); 
      } 
     else { 
       $('.trNotes').hide(); 
      } 
    }); 

Ustawianie display:none do <tr> i nadając jej nazwę klasy nie wpływa na wartość z pola tekstowego.

0

musisz użyć wyłączenia atrybutu w polu tekstowym. wtedy tylko nie powróci anything.if u używać display: none nie będzie pole tekstowe w przeglądarce, ale wysłać pustą wartość do sterownika na stanowisku

Kodeks tekstowego:

<textarea class="mceEditorWide" id="txtAddDetailNote" rows="30" cols="50" style="width:100%;display:none" runat="server"></textarea> 

wyboru, które ukrywa/pokazuje Pole tekstowe:

$('#<%= chkNotes.ClientID %>').change(function() { 
     if($(this).is(":checked")) { 
      $('#<%= txtAddDetailNote.ClientID %>').removeAttr('disabled','disabled').show(); 
      } 
     else { 
       $('#<%= txtAddDetailNote.ClientID %>').attr('disabled','disabled').hide(); 

      } 
    }); 

nadzieję, że to pomaga

+0

przy użyciu wyłączenia atrybutów nie ukrywa się ani nie wyświetla pole tekstowe. Po zaznaczeniu pola wyboru muszę pokazać pole tekstowe. Jeśli nie jest zaznaczone, a następnie ukryj pole tekstowe – user123456789

+0

k sprawdź zaktualizowany kod – anand

+0

czy rozwiązałeś swój problem – anand

2

można przełączyć styl visibility cSS elementu:

$("#someSelector").css("visibility", "collapse"); 
$("#someSelector").css("visibility", "visible"); 

... a jeśli to konieczne, ustaw jego wysokość do wartości subpikseli, takich jak 0.001px

0

nie dokładnie to, za co mają zrobić, można dostarczać więcej kodu? Skrzypce?

Spróbuj tego:

$('.checkbox').change(function() { 
    var ShowHide = $(this).is(":checked") ? $('.mceEditorWide').show() : $('.mceEditorWide').hide(); 
}); 


$(document).on('submit', $('form'), function(e) { 
    e.preventDefault(); 
    alert($('.mceEditorWide').val()); 
}) 

Jest prostsze wdrożenie pokazywanie/ukrywanie textarea I po przesłaniu formularza, można zobaczyć wartość textarea powiadamiani.

Oto przykład praca:

https://jsfiddle.net/nebulousal/4bnjfLc8/

Ponadto, można wstawić własny kod, aby przechwycić przesyłanie formularza i robić, co chcesz, aby rzeczywiste dane, co się dzieje na serwerze przed wysłaniem :

$(document).on('submit', $('form'), function(e) { 
    e.preventDefault(); 
    //Do whatever you want to do to any data in the form 
    //Then send it off to the server 
}) 
+0

, problem polega na tym, że tekst jest ustawiony na "display: none", a wartość nie zostaje zapisana. Kod, który mam w pytaniu, służy do ukrywania i pokazywania obszaru tekstowego. Ale problemem jest zapisanie wartości – user123456789