主题: 用PHPWIND9.0的AJAX提交获取不到编辑器的数据,代码如下 |
作者: retitan, 发布日期: 2012-10-03 02:16:33, 浏览数: 4661 |
这个是HTML代码、、、、、、、 <!doctype html> <html> <head> <template source='TPL:admin.common.head' /> <link rel="stylesheet" href="{@G:url.js}/kindeditor/themes/default/default.css" /> <link rel="stylesheet" href="{@G:url.js}/kindeditor/plugins/code/prettify.css" /> <script charset="utf-8" src="{@G:url.js}/kindeditor/kindeditor.js"></script> <script charset="utf-8" src="{@G:url.js}/kindeditor/lang/zh_CN.js"></script> <script charset="utf-8" src="{@G:url.js}/kindeditor/plugins/code/prettify.js"></script> <script> KindEditor.ready(function(K) { var editor1 = K.create('textarea[name="content"]', { themeType : 'simple', cssPath : '{@G:url.js}/kindeditor/plugins/code/prettify.css', uploadJson : '{@G:url.js}/kindeditor/php/upload_json.php', fileManagerJson : '{@G:url.js}/kindeditor/php/file_manager_json.php', allowFileManager : true, afterCreate : function() { var self = this; K.ctrl(document, 13, function() { self.sync(); K('form[name=add]')[0].submit(); }); K.ctrl(self.edit.doc, 13, function() { self.sync(); K('form[name=add]')[0].submit(); }); }, afterBlur: function(){ // 取得HTML内容 //html = editor.html(); // 同步数据后可以直接取得textarea的value //this.sync(); //document.getElementById('content').value = editor1.html(); // 原生API this.sync(); //document.getElementById('content')=KE.util.setData('content'); //alert("txt"); //html = K('#content').val(); // KindEditor Node API //this.sync(); //return false; } }); prettyPrint(); }); //html=editor.html(); </script> </head> <body> <div class="wrap"> <!--添加单页面--> <div class="nav"> <div class="return"><a href="{@WindUrlHelper::createUrl('pager/pager/run')}">返回上一级</a></div> <ul class="cc"> <li class="current"><a href="">添加单页面</a></li> </ul> </div> <div class="h_a">添加单页面</div> <!--==============================添加单页面================================--> <form name="add" class="J_ajaxForm" action="{@WindUrlHelper::createUrl('pager/pager/doadd')}" method="post"> <div class="table_full"> <table width="100%"> <col class="th" /> <tr> <th>名称</th> <td><span class="must_red">*</span><input name="name" type="text" class="input length_5" ><p class="gray">最多不超过5个字</p></td> </tr> <tr> <th>描述</th> <td><textarea name="descrip" style="width:300px;height:60px;"></textarea><p class="gray">请输入页面介绍</p></td> </tr> <tr> <th>关键词</th> <td><input name="keywords" type="text" class="input length_5" ><p class="gray">页面关键词</p></td> </tr> <tr> <th>页面内容</th> <td><span class="must_red">*</span><textarea id="content" name="content" style="width:700px;height:400px;"></textarea> </td> </tr> </table> </div> <div class="btn_wrap"> <div class="btn_wrap_pd"> <button class="btn btn_submit J_ajax_submit_btn" type="submit">提交</button> </div> </div> </form> </div> <template source='TPL:admin.common.footer' /> </body> </html> 这个是JS代码 //所有的ajax form提交,由于大多业务逻辑都是一样的,故统一处理 var ajaxForm_list = $('form.J_ajaxForm'); if( ajaxForm_list.length ) { Wind.use('dialog','ajaxForm',function() { //ajaxForm_list.on('submit', function(e) { $('button.J_ajax_submit_btn').on('click', function(e) { e.preventDefault(); /*var btn = $(this).find('button.J_ajax_submit_btn'), form = $(this);*/ var btn = $(this), form = btn.parents('form.J_ajaxForm'); if(btn.data('subcheck')) { //提交前操作 var beforefn = btn.data('beforefn'); beforefn(); return false; } form.ajaxSubmit({ url : btn.data('action') ? btn.data('action') : form.attr('action'), //按钮上是否自定义提交地址(多按钮情况) dataType : 'json', beforeSubmit: function(arr, $form, options) { var text = btn.text(); //按钮文案、状态修改 btn.text(text +'中...').prop('disabled',true).addClass('disabled'); }, success : function(data, statusText, xhr, $form) { var text = btn.text(); //按钮文案、状态修改 btn.removeClass('disabled').text(text.replace('中...', '')).parent().find('span').remove(); if( data.state === 'success' ) { $( '<span class="tips_success">' + data.message + '</span>' ).appendTo(btn.parent()).fadeIn('slow').delay( 1000 ).fadeOut(function() { if(data.referer) { //返回带跳转地址 if(window.parent.Wind.dialog) { //iframe弹出页 window.parent.location.href = data.referer; }else { window.location.href = data.referer; } }else { if(window.parent.Wind.dialog) { reloadPage(window.parent); }else { reloadPage(window); } } }); }else if( data.state === 'fail' ) { $( '<span class="tips_error">' + data.message + '</span>' ).appendTo(btn.parent()).fadeIn( 'fast' ); btn.removeProp('disabled').removeClass('disabled'); } } }); }); }); }如果加入afterblur:,jquery提示错误,而且也得不到数据,普通提交没有问题,百度N遍了没有找到解决方法, 谢谢啦、、、 |
作者: Roddy, 发布日期: 2012-10-03 10:43:05 |
1. 把var editor1 = K.create(... 改成 window.editor1 = K.create(...
2. afterBlur不需要,删掉
3. ajaxSubmit的beforeSubmit里添加editor1.sync();即可 |
回复 |
作者: retitan, 发布日期: 2012-10-03 19:06:43 |
实验 了一下还是不成功啊,不知道怎么回事。还是谢谢你的回答,速度很快
|
回复 |
作者: retitan, 发布日期: 2012-10-04 15:49:15 |
刚才又试了下,提交英文可以,但是中文就不行,是不是把中文和HTML给过滤掉了?
|
回复 |