2016-02-12 75 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

相关问题