(function( $ ){ var methods = { init : function( options ){ var $this = this; options = $.extend( $.fn.createproblem.options, options ); return this.each(function(){ $("#createProblemMarkContainer").markinput("init",{adjustLeftComponent:$("#problemModalBody")}); $("#createProblemSummary").on("keydown",function(e){ var keyCode = e.keyCode; if(keyCode == 13){ e.preventDefault(); } }); $("#createProblemSummary").on("paste",function(e){ var pasteText = e.originalEvent.clipboardData.getData("text/plain"); pasteText = pasteText.replace(/\r\n/g,""); pasteText = pasteText.replace(/\r/g,""); pasteText = pasteText.replace(/\n/g,""); document.execCommand("insertHTML", false, pasteText); e.preventDefault(); }); //统计字数 $("#createProblemSummary").on("keydown cut copy paste",function(){ setTimeout(function(){ $("#createProblemModel").modal("adjustBackdrop"); var inputText = $("#createProblemSummary").text(); if(inputText.length > 500){ $("#problemSummaryLimit").show(); $("#problemSummaryLimit").css("color","red"); $("#problemSummaryLimit").text(inputText.length + " / 500"); }else if(inputText.length > 350){ $("#problemSummaryLimit").show(); $("#problemSummaryLimit").css("color","#838383"); $("#problemSummaryLimit").text(inputText.length + " / 500"); }else{ $("#problemSummaryLimit").hide(); } },0); }); $("#createProblemContent").on("keydown cut copy paste",function(){ setTimeout(function(){ var inputText = $("#createProblemContent").val(); if(inputText.length > 100){ $("#problemContentLimit").show(); $("#problemContentLimit").css("color","red"); $("#problemContentLimit").text(inputText.length + " / 100"); }else if(inputText.length > 80){ $("#problemContentLimit").show(); $("#problemContentLimit").css("color","#838383"); $("#problemContentLimit").text(inputText.length + " / 100"); }else{ $("#problemContentLimit").hide(); } },0); }); $("#createProblemCancel").on("click",function(){ $("#createProblemModel").modal("hide"); }); $("#createProblemSubmit").on("click",function(){ var problemContent = $("#createProblemContent").val(); var problemSummary = $("#createProblemSummary").text(); if(problemContent.length <= 0){ $("#drTipbar").drtipbar("showMsg","请输入问题"); return; } if(problemContent.length > 100){ $("#drTipbar").drtipbar("showMsg","问题内容最多100个字"); return; } if(problemSummary.length > 500){ $("#drTipbar").drtipbar("showMsg","问题描述最多500个字"); return; } //验证是否以问号结尾 var lastStr = problemContent.substr(problemContent.length - 1,problemContent.length); if(lastStr != '?' && lastStr != '?'){ $("#drTipbar").drtipbar("showMsg","问题必须以问号结尾"); return; } problemContent = encodeURIComponent(problemContent); problemSummary = encodeURIComponent(problemSummary); var markArr = $("#createProblemMarkContainer").markinput("getMarkArray"); if(markArr.length == 0){ $("#drTipbar").drtipbar("showMsg","问题必须带标签"); return; } var markDataString = JSON.stringify(markArr); markDataString = encodeURIComponent(markDataString); $("#createProblemSubmit").attr("disabled",true); jQuery.ajax({ type : "POST", contentType : "application/x-www-form-urlencoded", url : "/problems/create", data : "content="+problemContent+"&summary="+problemSummary+"&markstr="+markDataString, beforeSend: function(request) { $('#loadingBar').drloadingbar("startLoad"); }, success : function(data){ //disable不能去除,在页面跳转前会有再被点的风险 $.drWindowLocation("/problems/get?guid="+data.guid,true); }, error : function(data){ $('#loadingBar').drloadingbar("stopLoad"); $("#createProblemSubmit").removeAttr("disabled"); if(data.responseJSON == null){ $("#drTipbar").drtipbar("showMsg","网络不给力"); }else{ if(data.responseJSON.errCode != null){ $("#drTipbar").drtipbar("showMsg",data.responseJSON.errMessage); }else{ $("#drTipbar").drtipbar("showMsg","网络不给力"); } } } }); }); }); }, modalShow:function(){ $("#createProblemModel").modal("show"); } }; $.fn.createproblem = function( method ) { // Method calling logic if ( methods[method] ) { return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments ); } else { $.error( 'Method ' + method + ' does not exist on jQuery.createproblem' ); } }; $.fn.createproblem.options = {}; })( jQuery );