·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 花了一早上的时间(4个多小时)总结出来的教训:textarea标签中的文本内容不能够通过serialize()方法得到
1.先看一下完善的代码,也就是最终的答案!
functionGetContent(){
returnCKEDITOR.instances.nEditor.getData();//这里nEditor是textarea的name值
}
$("#btnAdd").click(function(){
//alert(GetContent());//测试使用
vardata=$("#fContent").serialize();
// alert(data);
$.Ajax(targetUrl,{
data:data+"&nEditor="+GetContent(),
type:"post",
dataType:"json",
success:function(jsonObj){
PRocessData(jsonObj,function(){
msgBox.showMsgOk(jsonObj.msg);
window.location="news.aspx";
},1);
}
});
});
<asp:ContentID="Content2"ContentPlaceHolderID="placeRight"runat="server">
<formid="fContent">
<%if (modNews!=null)
{%>
<inputtype="hidden"name="NID"value="<%=modNews.NID%>"/>
<%} %>
<strong>标题:<inputtype="text"name="nTitle"<%if (modNews==null){%>value=""<%}
else
{%>value="<%=modNews.NTitle%>"/><%} %>
</strong>
<strong>所属分类:<selectid="NcId"name="NcId"><%=MakeSelect() %></select></strong>
</form>
<textareaid="nEditor"name="nEditor">
<%if(modNews!=null) {Response.Write(modNews.NContent);}%>
</textarea>
<divstyle="float: left; margin-left: 40%; margin-right: 20px;">
<inputtype="button"id="btnAdd"value="保存并提交 "style="font-size: large"/>
</div>
<div>
<inputtype="button"id="btnCancel"value="放弃编辑 "style="font-size: large"/>
</div>
</asp:Content>
2.以上结果是在几个小时的折磨之后才得出来的,程序猿不容易啊!可这个期间会经过很多弯路,请看下面:
2.1一开始是这样:textarea标签在form表单内,直接用Jquery中的serialize()序列化;
$("#btnAdd").click(function(){
//alert(GetContent());//测试使用
vardata=$("#fContent").serialize();//注意这一行
// alert(data);
$.ajax(targetUrl,{
data:data+"&nEditor="+GetContent(),//注意这一行
type:"post",
dataType:"json",
success:function(jsonObj){
ProcessData(jsonObj,function(){
msgBox.showMsgOk(jsonObj.msg);
window.location="news.aspx";
},1);
}
});
});
<formid="fContent">
<%if (modNews!=null)
{%>
<inputtype="hidden"name="NID"value="<%=modNews.NID%>"/>
<%} %>
<strong>标题:<inputtype="text"name="nTitle"<%if (modNews==null){%>value=""<%}
else
{%>value="<%=modNews.NTitle%>"/><%} %>
</strong>
<strong>所属分类:<selectid="NcId"name="NcId"><%=MakeSelect() %></select></strong>
<textareaid="nEditor"name="nEditor">/*textarea是在form表单里面的哦*/
<%if(modNews!=null) {Response.Write(modNews.NContent);}%>
</textarea>
</form>
2.2可是结果很悲催啊,当我新添加一条新闻时,我明明填写了新闻标题和内容,为什么提示为空呢?难道被Web黑洞吸收了?我不相信,抱着坚定的信心寻找原因;
*************************************************
期间是艰难的思考期,撒尿的时候突然想到,textarea中的文本可能不能被serialize()序列化吧?
************************************************
2.3我继续尝试了一下编辑新闻,"哈哈哈"是从数据库中读取到的内容,我新添加了一句之后,点