2016-02-12 73 views
5

我有一個textarea,用戶可以在其中輸入註釋。但是這個textarea只會顯示一個複選框,否則它會被隱藏。 但是,當點擊保存按鈕並將值保存到數據庫時,textarea返回空白值。將textarea設置爲顯示:嘗試保存時沒有丟失該值

代碼textarea的:

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

複選框隱藏/顯示文本框:

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

      } 
    }); 

當我刪除從文本區域的display:none,這樣可以節省的值。但在代碼中使用display:none時,即使textarea在單擊保存按鈕時顯示,它也只會返回空白值。

+0

您是否使用MCE編輯器轉換文本框富文本編輯器? – Vamsikrishna

+0

@Vamsikrishna我不知道,我沒有寫MCE編輯 – user123456789

+0

好吧,你可以刪除類文本框和檢查一次 – Vamsikrishna

回答

2

回答了這個問題: 仍然不知道爲什麼textarea的設置爲display:none是導致它失去值,但將顯示設置爲<tr>標籤解決了這個問題。

代碼的textarea:

<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> 

代碼隱藏/顯示它:

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

設置display:none<tr>,給它一個類名不實現從textarea的價值。

0

你必須在文本框中使用屬性禁用。那麼只有它不會返回anything.if u使用顯示:無它不會在瀏覽器中的文本框,但它發送空值對柱控制器

代碼文本框:

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

複選框隱藏/顯示文本框:

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

      } 
    }); 

希望這有助於

+0

或顯示代碼文本框。當勾選複選框時,我需要顯示文本框。如果未選中然後隱藏文本 – user123456789

+0

檢查您是否更新的代碼 – anand

+0

做你解決你的問題 – anand

2

你可以切換元素的visibility CSS樣式:

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

...如果有必要,設置它的高度,以一個子像素值,如0.001px

0

我不完全得到你做什麼,你可以提供更多的代碼?小提琴?

嘗試了這一點:

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


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

還有一個更簡單的實現顯示的/隱藏textarea的,當你提交表單,您可以看到提醒textarea的價值。

這裏有一個工作示例:

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

此外,您還可以插入自己的代碼來截取表單提交,做任何你想做的是將服務器的實際數據在發送前:

$(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

當textarea的設置爲'顯示的問題是:那麼none'值不保存。我在問題中的代碼適用於隱藏和顯示textarea。但問題在於節省價值 – user123456789

相關問題