Files
question-php/js/questionnaire.js
2018-06-05 19:45:48 +08:00

256 lines
9.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//共占用3个变量名myFun,addOne,checkedInfo
var checkInfo, addOne;
//////////////////////////////////////////////////////////////////////////////////////////
(function(window) {
//倒计时
function remtime(timesec, clearT, fun) {
function countdown() {
function formatTime(sec) {
function fix(n) {
if (n < 10) return "0" + n.toString();
else return n;
// return n<10?'0'+n.toString():n;
}
return fix(Math.floor(sec / 60)) + ":" + fix(sec % 60);
}
timesec--;
var timeTmp = formatTime(timesec);
for (var e_array = document.getElementsByName('remtime'), i = e_array.length - 1; i >= 0; i--) {
e_array[i].innerText = timeTmp;
}
if (!timesec) {
clearTimeout(timer);
$.isFunction(fun) && fun();
}
if (!clearT[0]) {
clearTimeout(timer);
}
}
var timer = setInterval(countdown, 1000);
}
//边框效果--移入
function borderShow(obj) {
var hh = $(obj).height() + 50,
ww = $(obj).width() + 50;
$(obj).find('.biankuang_1').stop(true).animate({
height: hh
}, 300);
$(obj).find('.biankuang_2').stop(true).delay(300).animate({
width: ww
}, 300);
$(obj).find('.biankuang_3').stop(true).animate({
height: hh
}, 300);
$(obj).find('.biankuang_4').stop(true).delay(300).animate({
width: ww
}, 300);
}
//边框效果--移出
function borderHidden(obj) {
$(obj).find('.biankuang_1').stop(true).delay(100).animate({
height: '0px'
}, 100);
$(obj).find('.biankuang_2').stop(true).animate({
width: '0px'
}, 100);
$(obj).find('.biankuang_3').stop(true).delay(100).animate({
height: '0px'
}, 100);
$(obj).find('.biankuang_4').stop(true).animate({
width: '0px'
}, 100);
}
window.myFun = [remtime, borderShow, borderHidden];
})(window);
//////////////////////////////////////////////////////////////////////////////////////////
$(document).ready(function() {
var clearT = [1],
//正则匹配规则
theRegex = [
/^[\u4e00-\u9fa5]{2,5}$/,
/^((200|199)\d|201[0-7])\d{6}$/,
/^[\u4e00-\u9fa5]{2,}$/,
/^[\u4e00-\u9fa5]{2,}$/,
/^1\d{10}$/
],
eName = [
"user_name",
"student_id",
"school",
"userclass",
"telephone"
],
lableValue = new Array(),
questionNum,
questionsChecked = new Array();
//初始化 questionNum
questionNum = document.getElementById("ppp").getAttribute('ppp');
//初始化数组 labelValue & questionChecked
for (var i = eName.length - 1; i >= 0; i--) {
lableValue[i] = $("#" + eName[i] + "_label").html();
}
for (var i = questionNum - 1; i >= 0; i--) {
questionsChecked[i] = 0;
}
//倒计时器
//name="remtime"
//remtime(sec,callback);
startremtime = function() {
myFun[0](900, clearT,
function() {
var btn = document.getElementById("submit");
$("#form1").ajaxSubmit({
beforeSubmit: function() {
if (!clearT[0]) {
return false;
}
},
success: function(responseText) {
clearT[0] = 0;
alert("时间到!");
alert(responseText);
}
});
btn.setAttribute('class', btn.getAttribute('class') + ' disabled');
});
}
//当鼠标离开节点时调用此方法,验证节点内容是否符合注册规范
checkInfo = function(node, num) {
var label_id = "#" + eName[num] + "_label";
console.log(node.value);
if (!theRegex[num].test(node.value) && !node.value.length == 0) { //验证是否符合节点对应的正则表达式
$(node).css("box-shadow", "0 1px 0 0 red");
$(node).css("border-bottom", "1px solid red"); //不符合,相应内容变成红色
$(label_id).html("请填写正确的" + lableValue[num] + "");
$(label_id).css("color", "red");
} else {
$(node).css("box-shadow", "0 1px 0 0 #26a69a");
$(node).css("border-bottom", "1px solid #26a69a"); //符合,相应内容变成绿色
$(label_id).html(lableValue[num]);
$(label_id).css("color", "#9e9e9e");
}
};
addOne = function(node) {
var sum = 0;
for (var i = questionNum; i > 0; i--) {
if ($(node).attr('name') == "answer_" + i) {
questionsChecked[i - 1] = 1;
break;
}
}
for (var i = questionNum - 1; i >= 0; i--) {
sum += questionsChecked[i];
}
$(".determinate").css("width", 100 * sum / questionNum + "%");
};
//表单验证
requestFirst = function() {
var ifblock = new Array(),
scroll_top_duration = 900; //ms
for (var i = eName.length - 1; i >= 0; i--) {
ifblock[i] = $.trim(document.getElementById(eName[i]).value);
}
//判断姓名和学好是否填写
for (var i = 0; i <= ifblock.length - 1; i++) {
if (ifblock[i].length == 0) {
Materialize.toast(lableValue[i] + '不能为空!', 4000);
$('body,html').animate({
scrollTop: 0
}, 400);
return false;
} else if (!theRegex[i].test(ifblock[i])) {
Materialize.toast(lableValue[i] + '不正确!', 4000);
$('body,html').animate({
scrollTop: 0
}, 400);
return false;
}
}
$("#information").hide();
$("#hiddenDisplay").hide();
$("#hiddenBefore").show();
$("#submit").show();
$("#theFooter").show();
startremtime();
return true;
}
function showRequest() {
var ifblock = new Array(),
scroll_top_duration = 900; //ms
for (var i = eName.length - 1; i >= 0; i--) {
ifblock[i] = $.trim(document.getElementById(eName[i]).value);
}
//判断姓名和学好是否填写
for (var i = 0; i <= ifblock.length - 1; i++) {
if (ifblock[i].length == 0) {
Materialize.toast(lableValue[i] + '不能为空!', 4000);
$('body,html').animate({
scrollTop: 0
}, 400);
return false;
} else if (!theRegex[i].test(ifblock[i])) {
Materialize.toast(lableValue[i] + '不正确!', 4000);
$('body,html').animate({
scrollTop: 0
}, 400);
return false;
}
}
//判断题目是非选择
for (var i = 1; i <= questionNum; i++) {
var answerno = "answer_" + i, //遍历每到题目
isAutoSend = document.getElementsByName(answerno),
nochecked = 0;
for (var x = 0; x < isAutoSend.length; x++) {
if (isAutoSend[x].checked) {
nochecked = 1;
break;
}
}
if (nochecked == 0) {
var question = "question_" + i,
obj = document.getElementsByName("div_e")[i - 1];
Materialize.toast("第" + i + "题未选择", 3000);
$('body,html').animate({
scrollTop: $(document.getElementById(question)).offset().top - 75
}, scroll_top_duration,
function() {
myFun[1](obj);
setTimeout(function() { myFun[2](obj) }, 1200);
}
);
return false;
}
}
//alert("提交成功。谢谢参与我们的活动请继续关注我们公众号bupt_stu的后续推送。现在你可以直接关闭页面了。"); //Alert("post success.");
if (!clearT[0]) {
return false;
}
return true;
}
function showResponse(responseText) {
clearT[0] = 0;
alert(responseText);
if(responseText != "提交成功。谢谢参与我们的活动请继续关注我们公众号bupt_stu的后续推送。现在你可以直接关闭页面了。"){
window.location.href = "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5NzY1MjYyMg==&scene=124#wechat_redirect";
}else{
window.location.href = "https://wall.kaionji.com/wj/anser.php";
}
}
var options = {
beforeSubmit: showRequest,
success: showResponse
};
$("#form1").ajaxForm(options);
});