出错现象:当运行到success:function(form,action) 就直接跳到failure里面去了 根本就没有过服务器 但是我把fckeditor去掉后 可以提交到服务器的 请问大家为什么
代码:
[code="java"]
//用于智能提示显示
///
/*
*发表新贴
*/
//document.write("<\/script>")<br> function NewArticle()/// <br> {<br> var NewArticleTitle = new Ext.form.TextField({<br> id:'NewArticleTitle'<br> ,fieldLabel:'<span style="color:red"> 标 题</span>'<br> ,allowBlank : false<br> ,emptyText : '请填写 标题'<br> ,text:"请输入 标题"<br> ,anchor:'90%'<br> });</p> <pre><code>var NewArticleCategoryStore = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({url:'json/HomePage/Modul.aspx?Param=listForCombox&CategoryId=10000',method:'get'}) ,reader:new Ext.data.JsonReader({}, [{name:'CategoryID'} ,{name:'ModualID'} ,{name:'IsLeaf'} ,{name:'ModualIndex'} ,{name:'ModulName'} ,{name:'ParentModalID'} ]) }) //NewArticleCategoryStore.load(); var NewArticleModule = new Ext.form.ComboBox({ id:'NewArticleModule' ,fieldLabel:'<span style="color:red"> 栏 目</span>' ,allowBlank : false ,emptyText : '请选择 栏目' ,text:"请选择 栏目" ,anchor:'90%' ,resizable : true //,minListWidth : 220 //,pageSize:5 ,editable:false ,autoLoad:true ,mode: 'remote' ,store:NewArticleCategoryStore ,displayField:'ModulName' ,valueField:'ModualID' ,hiddenName : 'ModualID' ,triggerAction: 'all' ,selectOnFocus:true }); var NewArticleContent = new Ext.form.TextArea({ id:'NewArticleContent' ,fieldLabel:'<span style="color:red"> 内 容</span>' ,allowBlank : false ,anchor:'90%' ,height:340 ,allowBlank : false ,emptyText : '请输入 内容' }); var NewArticleCancleButton = new Ext.Button({ text:'取 消' ,tooltip:'取 消' ,listeners:{ 'click':function(th,e){ var CenterTable = Ext.getCmp('id_Tab_Center'); var temp_NewArticlePanel = Ext.getCmp('GirdViewPanel'); if (temp_NewArticlePanel) { CenterTable.remove(temp_NewArticlePanel,true); } } } }); var NewArticleOKButton = new Ext.Button({ text:'提 交' ,tooltip:'提 交' ,listeners:{ 'click' : function(){ fckobj_temp = FCKeditorAPI.GetInstance('NewArticleContent'); Ext.get('NewArticleContent').dom.value = fckobj_temp.GetXHTML(true); var temp_UserName = getCookie('www.ForU.com_LoginNameCookie'); var Temp_ModuleName = NewArticleModule.getRawValue(); var Temp_ModuleId = NewArticleModule.getValue(); var Temp_ArticleName = Ext.getCmp('NewArticleTitle').getValue(); var Temp_Content = Ext.getCmp('NewArticleContent').getValue(); alert(Temp_Content); //提交 if (NewArticleFormPanel.getForm().isValid()) { NewArticleFormPanel.getForm().doAction('submit',{ url:'json/Forum/NewArticle.aspx' ,method:'POST' ,params:{FunctionName:'NewArticle',UserName:temp_UserName,NewArticleTitle:Temp_ArticleName,NewArticleModule:Temp_ModuleId} ,waitMsg:'提交中,请等待....' ,success:function(form,action){ Ext.Msg.alert('提示','发帖成功!'); } ,failure:function(form,action){ Ext.Msg.alert('提示','网络中断造成连接失败!'); } }) } } } }); var NewArticleResetButton = new Ext.Button({ text:'重 置' ,listeners:{ 'click' : function(){ Ext.getCmp('NewArticleTitle').setValue(''); Ext.getCmp('NewArticleContent').setValue(''); } } }); var NewArticleFormPanel = new Ext.form.FormPanel({ title : '发表新贴' ,id : 'NewArticleFormPanel' ,frame:true ,autoWidth:true ,autoheight:true ,autoScroll:true ,closable:true ,layout:'form' ,collapsible:true ,items:[NewArticleTitle,NewArticleModule,NewArticleContent] ,buttons:[NewArticleCancleButton,NewArticleOKButton,NewArticleResetButton] }) </code></pre> <p>//-----------------------------------------------------<br> var CenterTable = Ext.getCmp('id_Tab_Center');<br> if (CenterTable)<br> {<br> for (var i=0;i<CenterTable.items.length;i++)<br> {<br> if (CenterTable.items.items[i].title == '发表新贴')<br> {<br> CenterTable.activate(CenterTable.items.items[i]);<br> return;<br> }<br> }<br> CenterTable.add(NewArticleFormPanel);<br> CenterTable.activate(NewArticleFormPanel);<br> }<br> var Temp_Height = Ext.getCmp('NewArticleContent').getSize().height;<br> var Temp_Width = Ext.getCmp('NewArticleContent').getSize().width;<br> var fckobj = new FCKeditor('NewArticleContent',Temp_Width,Temp_Height);<br> fckobj.BasePath = "FCKeditor/" ;<br><br> fckobj.ToolbarSet = 'Default' ;<br><br> fckobj.ReplaceTextarea();</p> <pre><code>NewArticleTitle.on('resize',function(th,aw,ah,rw,rh){ fckobj.Height = 150; fckobj.Width = aw; }); </code></pre> <p>//-------------------------------------------------------<br> }</p> <p>[/code]<br> [b]问题补充:[/b]<br> 谢谢 两位。<br> form提交后 会自动把form上的控件内容传入服务器 所以应该这么写:<br> Ext.get('NewArticleContent').dom.value = encodeURIComponent(fckobj_temp.GetXHTML(true));</p>
肯能是提交的FCK中存在HTML标记导致提交失败.
doAction里面报错了吧.
估计是特殊字符什么的处理不好.
源码跟踪下吧