将textarea设置为display:none在尝试保存时丢失该值

use*_*789 5 javascript c# asp.net jquery textbox

我有一个textarea,用户可以在其中输入注释.但是这个textarea只会在勾选复选框时显示,否则会隐藏.但是,当单击保存按钮并将值保存到数据库时,textarea将返回空值.

textarea的代码:

<textarea class="mceEditorWide" id="txtAddDetailNote" rows="30" cols="50" style="width:100%;display:none" runat="server"></textarea>
Run Code Online (Sandbox Code Playgroud)

隐藏/显示文本框的复选框:

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

            }
    });
Run Code Online (Sandbox Code Playgroud)

当我display:none从textarea中删除它时,它会保存值.但是display:none在代码中,它只返回一个空值,即使单击保存按钮时显示textarea.

use*_*789 2

回答这个问题: 仍然不确定为什么将文本区域设置为display:none导致其丢失值,但将显示设置为<tr>标签解决了这个问题。

文本区域代码:

<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> 
Run Code Online (Sandbox Code Playgroud)

隐藏/显示它的代码:

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

设置display:none<tr>并为其指定类名不会影响文本区域中的值。