diff --git a/static/src/js/app/oj/problem/problem.js b/static/src/js/app/oj/problem/problem.js index 4612a94c..823afc82 100644 --- a/static/src/js/app/oj/problem/problem.js +++ b/static/src/js/app/oj/problem/problem.js @@ -1,7 +1,7 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirror, csrfTokenHeader, bsAlert) { var codeEditorSelector = $("#code-editor")[0]; // 部分界面逻辑会隐藏代码输入框,先判断有没有。 - if (codeEditorSelector == undefined){ + if (codeEditorSelector == undefined) { return; } var codeEditor = codeMirror(codeEditorSelector, "text/x-csrc"); @@ -92,9 +92,37 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirro }) } + function guessLanguage(code) { + //cpp + if (code.indexOf("using namespace std") > -1) { + return "2"; + } + //c + if (code.indexOf("printf") > -1) { + return "1"; + } + //java + if (code.indexOf("public class Main")) { + return "3"; + } + } + $("#submit-code-button").click(function () { var code = codeEditor.getValue(); + + if (!code.trim()) { + bsAlert("请填写代码!"); + hideLoading(); + return false; + } + + if(guessLanguage(code) != language){ + if(!confirm("您选择的代码语言可能存在错误,是否继续提交?")){ + return; + } + } + if (location.href.indexOf("contest") > -1) { var problemId = location.pathname.split("/")[4]; var contestId = location.pathname.split("/")[2]; @@ -118,15 +146,8 @@ require(["jquery", "codeMirror", "csrfToken", "bsAlert"], function ($, codeMirro showLoading(); - if (!code.trim()) { - bsAlert("请填写代码!"); - hideLoading(); - return false; - } - $("#result").html(""); - $.ajax({ beforeSend: csrfTokenHeader, url: url,