You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
LiaoNingDangAn/public/static/diaowen/js/dw/an/ans-m.js

1159 lines
43 KiB

2 years ago
/**
*
* DWSurvey 3.0 中关于问卷设计Javascript
*
* @desc: design survey
* @author: keyuan@keyuan, keyuan258@gmail.com
* @github: https://github.com/wkeyuan/DWSurvey
*
* Copyright 2012, 2017 调问问卷(DWSurvey,http://dwsurvey.net)
*
*/
$(document).ready(function () {
var ctx = $("#ctx").val();
var sid = $.getUrlParam("sid");
var surveyId = $.getUrlParam("surveyId");
var tag = $.getUrlParam("tag");
var ruleCode = $.getUrlParam("ruleCode");
var wxCode = $.getUrlParam("code");
$("#sid").val(sid);
$("#id").val(surveyId);
$("#tag").val(tag);
$("#ruleCode").val(ruleCode);
$("#wxCode").val(wxCode);
if (tag != "" && (tag === "p" || tag === "s")) {
$("#preview_head_top").show();
} else {
$("#preview_head_top").remove();
}
querySurveyAll(function () {
sww();
if (!$("#preview_head_top")[0]) {
checkAnswerSurvey(sid);
}
wwwUpload();
});
});
function sww() {
var bfbFloat = 0;
$(document).ready(function () {
$("#resultProgress").progressbar({
value: bfbFloat,
orientation: "vertical",
});
//分页设置 nextPage_a prevPage_a
$(".nextPage_a").click(function () {
if (validateForms()) {
var thParent = $(this).parent();
var nextPageNo = thParent.find("input[name='nextPageNo']").val();
// $(".li_surveyQuItemBody").hide();
// $(".surveyQu_"+nextPageNo).fadeIn("slow");
//$(window).scrollTop(10);
var curPageNo = parseInt(nextPageNo) - 1;
$(".surveyQu_" + curPageNo).hide();
var nextPageQus = $(".surveyQu_" + nextPageNo);
$.each(nextPageQus, function () {
var quItemBody = $(this);
var itemBodyClass = quItemBody.attr("class");
var quType = quItemBody.find(".quType").val();
if (quType === "PAGETAG" || quType === "submitSurveyBtn") {
quItemBody.show();
}
if (itemBodyClass.indexOf("hidFor") < 0) {
quItemBody.show();
}
});
var nextPageItems = $(".surveyQu_" + nextPageNo + ":visible");
if (nextPageItems[0] && nextPageItems.size() <= 1) {
$(nextPageItems[0]).find(".nextPage_a").click();
}
$("html,body").animate({ scrollTop: 10 }, 500);
}
return false;
});
$(".prevPage_a").click(function () {
var thParent = $(this).parent();
var prevPageNo = thParent.find("input[name='prevPageNo']").val();
// $(".li_surveyQuItemBody").hide();
// $(".surveyQu_"+prevPageNo).fadeIn("slow");
var curPageNo = parseInt(prevPageNo) + 1;
$(".surveyQu_" + curPageNo).hide();
var prevPageQus = $(".surveyQu_" + prevPageNo);
$.each(prevPageQus, function () {
var quItemBody = $(this);
var itemBodyClass = quItemBody.attr("class");
//alert(itemBodyClass.indexOf("hidFor"));
var quType = quItemBody.find(".quType").val();
if (quType === "PAGETAG") {
quItemBody.show();
}
if (itemBodyClass.indexOf("hidFor") < 0) {
quItemBody.show();
}
});
$(window).scrollTop(10);
return false;
});
/**排序题*/
$(".m_clickQuOrderItem").click(function () {
var visibleOrderbyNum = $(this)
.parents(".surveyQuItem")
.find(".m_orderby_num:visible");
var thOrderbyNum = $(this).find(".m_orderby_num");
if ($(this).find(".m_orderby_num:visible")[0]) {
} else {
var thNum = 0;
$(this).append("<select class='m_orderby_sel' > </select>");
var mOrderbySel = $(this).find(".m_orderby_sel");
var quOrderItems = $(this)
.parents(".surveyQuItem")
.find(".m_clickQuOrderItem");
$.each(quOrderItems, function (i, item) {
mOrderbySel.append(
"<option value='" + (i + 1) + "'>移至排序" + (i + 1) + "</option>"
);
var targetHid = $(this)
.parents(".ui-controlgroup-controls ")
.find(".quOrderItemHidInput[value='" + (i + 1) + "']");
if (!targetHid[0] && thNum === 0) {
thNum = i + 1;
}
});
thOrderbyNum.text(thNum);
thOrderbyNum.show();
mOrderbySel.val(thNum);
$(this).find(".quOrderItemHidInput").val(thNum);
}
bindEvent();
runlogic($(this));
validateCheck($(this).parents(".li_surveyQuItemBody"), false);
answerProgressbar($(this));
return false;
});
function bindEvent() {
$(".m_orderby_sel").unbind();
$(".m_orderby_sel").change(function () {
//交换个排
var thOrderbyItem = $(this).parents(".m_clickQuOrderItem");
var thOrderByNum = thOrderbyItem.find(".quOrderItemHidInput").val();
var thChangeNum = $(this).val();
var targetHid = $(this)
.parents(".ui-controlgroup-controls ")
.find(".quOrderItemHidInput[value='" + thChangeNum + "']");
if (targetHid[0]) {
var targetOrderbyItem = targetHid.parents(".m_clickQuOrderItem");
targetOrderbyItem.find(".m_orderby_num").text(thOrderByNum);
targetOrderbyItem.find(".quOrderItemHidInput").val(thOrderByNum);
targetOrderbyItem.find(".m_orderby_sel").val(thOrderByNum);
}
thOrderbyItem.find(".m_orderby_num").text(thChangeNum);
thOrderbyItem.find(".quOrderItemHidInput").val(thChangeNum);
thOrderbyItem.find(".m_orderby_sel").val(thChangeNum);
});
}
/**评分题*/
$(".starRating .fa").hover(
function () {
var prevAll = $(this).prevAll();
prevAll.removeClass("fa-star-o");
prevAll.addClass("fa-star");
$(this).removeClass("fa-star-o");
$(this).addClass("fa-star");
},
function () {
var scoreRow = $(this).parents(".scoreRow");
var starNum = scoreRow.find(".scoreNumInput").val();
if (starNum == "" && starNum <= 0) {
var thParent = $(this).parent();
var fas = thParent.find(".fa");
fas.removeClass("fa-star");
fas.addClass("fa-star-o");
}
}
);
$(".starRating .fa").click(function () {
var thParent = $(this).parent();
var fas = thParent.find(".fa");
fas.removeClass("fa-star");
fas.addClass("fa-star-o");
var prevAll = $(this).prevAll();
prevAll.removeClass("fa-star-o");
prevAll.addClass("fa-star");
$(this).removeClass("fa-star-o");
$(this).addClass("fa-star");
var scoreRow = $(this).parents(".scoreRow");
var starNum = 0;
if (prevAll[0]) {
starNum = prevAll.size();
}
scoreRow.find(".scoreNumInput").val(starNum + 1);
runlogic($(this));
validateCheck($(this).parents(".li_surveyQuItemBody"), false);
answerProgressbar($(this));
return false;
});
//表单验证
/**初始化表单骓证配置**/
function validateForms() {
var result = true;
var surveyQuItemBodys = $(".li_surveyQuItemBody");
var firstError = null;
$.each(surveyQuItemBodys, function () {
var quItemBody = $(this);
if (!validateCheck(quItemBody, true)) {
//定位到这题
if (firstError == null) {
firstError = quItemBody;
}
result = false;
}
});
if (firstError != null) {
$(window).scrollTop(firstError.offset().top);
}
if ($("#jcaptchaImgBody").is(":visible")) {
var jcaptchaInput = $("input[name='jcaptchaInput']").val();
if (jcaptchaInput === "") {
$("#jcaptchaImgBody .errorItem").show();
result = false;
} else {
$("#jcaptchaImgBody .errorItem").hide();
}
}
return result;
}
function checkoutData(checkType, value) {
var validateStatus = true;
if (value.length <= 0) {
validateStatus = false;
}
if (checkType == "NO") {
if (value.length <= 0) {
validateStatus = false;
}
} else if (checkType == "EMAIL") {
var __email =
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
if (!__email.test(value)) {
validateStatus = false;
}
} else if (checkType == "UNSTRCN") {
var __cn = /^[\u3220-\uFA29]+$/;
if (__cn.test(value)) {
validateStatus = false;
}
} else if (checkType == "STRCN") {
var __cn = /^[\u3220-\uFA29]+$/;
if (!__cn.test(value)) {
validateStatus = false;
}
} else if (checkType == "NUM") {
// "number[/[+|-][int|integer|float|double|money|{位数正则}.{位数正则}]]"
// var __regex = /^\d+(\.\d+)?$/;
var __regex = /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/;
if (!__regex.test(value)) {
validateStatus = false;
}
} else if (checkType == "DIGITS") {
var __regex = /^\d+$/;
if (!__regex.test(value)) {
validateStatus = false;
}
} else if (checkType == "TELENUM") {
var tel = /^\d{3,4}-{1}\d{7,9}-?\d{1,6}$/;
var tel400800 =
/^(400{1}-?[0-9]{3}-?[0-9]{4})|(800{1}-?[0-9]{3}-?[0-9]{4})$/;
if (!(tel.test(value) || tel400800.test(value))) {
validateStatus = false;
}
} else if (checkType == "PHONENUM") {
var length = value.length;
var mobile =
/^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if (!(length == 11 && mobile.test(value))) {
validateStatus = false;
}
} else if (checkType == "TELE_PHONE_NUM") {
var mobile =
/^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
var tel = /^\d{3,4}-{1}\d{7,9}-?\d{1,6}$/;
var tel400800 =
/^(400{1}-?[0-9]{3}-?[0-9]{4})|(800{1}-?[0-9]{3}-?[0-9]{4})$/;
if (!(tel400800.test(value) || tel.test(value) || mobile.test(value))) {
validateStatus = false;
}
} else if (checkType == "DATE") {
//日期的正则表达式
/*var reg1 = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;//2014-01-01
var regExp1 = new RegExp(reg1);
var reg2 = /^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;//12:00:00
var regExp2 = new RegExp(reg2);
var reg3 = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;//2014-01-01 12:00:00
var regExp3 = new RegExp(reg3);
if(!(regExp1.test(value) || regExp3.test(value))){
// alert("日期格式不正确正确格式为2014-01-01");
errorType = "DATE";
validateStatus = false;
}*/
if (/Invalid|NaN/.test(new Date(value).toString())) {
validateStatus = false;
}
} else if (checkType == "IDENTCODE") {
var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(value);
if (!(check && (value.length == 15 || value.length == 18))) {
validateStatus = false;
}
} else if (checkType == "ZIPCODE") {
var tel = /^[0-9]{6}$/;
if (!tel.test(value)) {
validateStatus = false;
}
} else if (checkType == "URL") {
var strRegex =
/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i;
if (!strRegex.test(value)) {
validateStatus = false;
}
}
return validateStatus;
}
$(".submitSurvey").click(function () {
var btnId = $(this).attr("id");
if (validateForms()) {
var thTxt = $(this).val();
if ($("#preview_head_top")[0]) {
alert("预览模式不可提交!");
return false;
}
if (thTxt === "提交") {
//$(".submitSurvey").parent("div").css({"background-color": "red"});
$(".submitSurvey").attr("disabled", "");
$(".submitSurvey").val("正在提交");
setTimeout(function () {
//$(".submitSurvey").parent("div").css({"background-color": "#373737"});
$(".submitSurvey").removeAttr("disabled");
$(".submitSurvey").val("提交");
}, 5000);
if (btnId == "previewSubmitSurvey") {
alert("当前为预览模式,不能提交答卷!");
} else {
$("#surveyForm").submit();
}
} else {
alert("5秒内禁止重复提交");
}
}
return false;
});
var focusFbk = null;
//绑定操作事件
//绑定操作事件
$("#dwSurveyQuContent .dwQuOptionItemContent").unbind();
$("#dwSurveyQuContent .dwQuOptionItemContent").click(function () {
if (focusFbk != null) {
focusFbk.blur();
}
clickItem($(this));
// runlogic($(this).parents(".li_surveyQuItemBody"),$(this));
answerProgressbar($(this));
validateCheck($(this).parents(".li_surveyQuItemBody"), false);
return false;
});
function clickItem(thObj) {
var quItemBody = thObj.parents(".li_surveyQuItemBody");
var quType = quItemBody.find(".quType").val();
var dwQuInputLabel = thObj.find(".dwQuInputLabel");
if ("RADIO" === quType) {
quItemBody.find(".dwQuInputLabel").removeClass("checked");
quItemBody.find("input[type='radio']").prop("checked", false);
thObj.find("input[type='radio']").prop("checked", true);
dwQuInputLabel.addClass("checked");
quItemBody.find(".dwQuOptionItemContent").removeClass("active");
thObj.addClass("active");
runlogic(thObj.find("input[type='radio']"));
} else if ("CHECKBOX" === quType) {
var thCheckbox = thObj.find("input[type='checkbox']");
if (thCheckbox.prop("checked")) {
thObj.find("input[type='checkbox']").prop("checked", false);
dwQuInputLabel.removeClass("checked");
thObj.removeClass("active");
} else {
thObj.find("input[type='checkbox']").prop("checked", true);
dwQuInputLabel.addClass("checked");
thObj.addClass("active");
}
var checkeds = quItemBody.find("input[type='checkbox']:checked");
var paramInt02 = quItemBody.find(".paramInt02").val();
if (paramInt02 > 0) {
if (checkeds[0] && checkeds.size() > paramInt02) {
dwQuInputLabel.removeClass("checked");
thObj.find("input[type='checkbox']").prop("checked", false);
thObj.removeClass("active");
alert("最多只支持选择" + paramInt02 + "项内容!");
return false;
}
}
runlogic(thObj.find("input[type='checkbox']"));
} else if ("MULTIFILLBLANK" === quType) {
var chenRow = thObj.parents(".mFillblankTableTr");
chenRow.find(".dwQuInputLabel").removeClass("checked");
chenRow.find("input[type='radio']").prop("checked", false);
thObj.find("input[type='radio']").prop("checked", true);
dwQuInputLabel.addClass("checked");
} else if ("SCALE" === quType) {
//单选题
quItemBody.find(".inputchecked").removeClass("inputchecked");
quItemBody.find("input[type='radio']").prop("checked", false);
thObj.find("input[type='radio']").prop("checked", true);
thObj.addClass("inputchecked");
runlogic(thObj.find("input[type='radio']"));
}
}
$(".radioSelect").change(function () {
if (focusFbk != null) {
focusFbk.blur();
}
var thVal = $(this).val();
var thName = $(this).attr("name");
var quCoItemUlLi = $(this).parents("li.quCoItemUlLi");
var quItemInputCase = quCoItemUlLi.find(
".quItemInputCase[itemid='" + thVal + "']"
);
var isNote = quItemInputCase.find(".isNote").val();
if (isNote == "1") {
quCoItemUlLi.find(".dwQuOptionItemNote").hide();
var dwQuOptionItemNote = quCoItemUlLi.find(
".dwQuOptionItemNote[name='text_" + thName + "_" + thVal + "']"
);
dwQuOptionItemNote.show();
} else {
quCoItemUlLi.find(".dwQuOptionItemNote").hide();
}
var thObj = $(this);
var quItemBody = $(this).parents(".li_surveyQuItemBody");
runlogic(thObj);
answerProgressbar(thObj);
validateCheck(quItemBody, false);
return false;
});
$(".fillblankInput,.dwMFillblankInput").focus(function () {
focusFbk = $(this);
return false;
});
//填空题
$(".fillblankInput,.dwMFillblankInput").blur(function () {
//$(this).css("borderColor","#D6D6FF");
runlogic($(this));
answerProgressbar($(this));
// validateCheck($(this).parents(".li_surveyQuItemBody"),true);
var thVal = $(this).val();
if (!$(this).hasClass("dateSelector") || thVal != "") {
validateCheck($(this).parents(".li_surveyQuItemBody"), true);
}
focusFbk = null;
});
function resetQuNum() {
var quTitleNums = $(".quTitleNum");
$.each(quTitleNums, function (i, item) {
$(this).text(i + 1 + "、");
});
}
// resetQuNum();
resetQuNumLogic();
function resetQuNumLogic() {
var surveyQuItemBodys = $(".li_surveyQuItemBody");
var quIndex = 1;
$.each(surveyQuItemBodys, function (i, item) {
var thClass = $(this).attr("class");
// var quCoNum = $(this).find(".quCoNum");
var quCoNum = $(this).find(".quTitleNum");
// console.debug(thClass+":"+thClass.indexOf("hidFor"));
if (thClass.indexOf("hidFor") < 0 && quCoNum[0]) {
quCoNum.html(quIndex++ + "、");
}
});
}
//处理标题因有p标签影响题目序号换行的问题
var quTitleNums = $(".quTitleNum");
$.each(quTitleNums, function () {
var nextObj = $(this).next();
if (nextObj[0]) {
var childrens = nextObj.children();
if (childrens[0]) {
var firstChildren = childrens.first();
if (firstChildren.is("p")) {
$(this).prependTo(firstChildren);
}
}
}
});
/******************************处理题目逻辑设置 **************************************/
//处理题目逻辑设置
/** 答题触发事件 **/
//初始化 处理默认逻辑跳转为显示,则先隐藏元素
var quLogics = $("#dwSurveyQuContent .quLogicItem");
$.each(quLogics, function () {
var loginItem = $(this);
var cgQuItemId = loginItem.find(".cgQuItemId").val();
var skQuId = loginItem.find(".skQuId").val();
var logicId = loginItem.find(".logicId").val();
var logicType = loginItem.find(".logicType").val();
if (logicType === "2") {
//逻辑类型为“显示”2 则初始化为隐藏
var hidQuItemBody = $(".quId[value='" + skQuId + "']").parents(
".li_surveyQuItemBody"
);
hidQuItemBody.hide();
hidQuItemBody.addClass("hidFor" + logicId);
hidQuItemBody.find(".answerTag").attr("disabled", true);
}
});
function runlogic(thFormElementObj) {
var quItemBody = thFormElementObj.parents(".li_surveyQuItemBody");
var quLogicItems = quItemBody.find(".quLogicItem");
if (quLogicItems[0]) {
var quInputCase = quItemBody.find(".quInputCase");
var quId = quInputCase.find(".quId").val();
var quType = quInputCase.find(".quType").val();
if (quType === "RADIO" || quType === "CHECKBOX") {
var quLgoicItem = null;
var quOptionItems = quItemBody.find(".dwQuOptionItemContent");
if (quType === "RADIO") {
if (quItemBody.find("select")[0]) {
quOptionItems = quItemBody.find("select option");
}
}
$.each(quLogicItems, function () {
var loginItem = $(this);
var cgQuItemId = loginItem.find(".cgQuItemId").val();
var skQuId = loginItem.find(".skQuId").val();
var logicId = loginItem.find(".logicId").val();
var logicType = loginItem.find(".logicType").val();
//过滤优先级
var isbreak = false;
$.each(quOptionItems, function () {
var quCoItem = $(this);
var quInput = null;
var logicStatus = false;
var curQuItemId = null;
if (quType === "RADIO") {
if (quItemBody.find("select")[0]) {
curQuItemId = $(this).val();
logicStatus = quItemBody.find("select").val() == curQuItemId;
} else {
quInput = quCoItem.find("input[type='radio']");
logicStatus = quInput.prop("checked");
curQuItemId = quInput.val();
}
} else if (quType === "CHECKBOX") {
quInput = quCoItem.find("input[type='checkbox']");
logicStatus = quInput.prop("checked");
curQuItemId = quInput.val();
}
if (curQuItemId === cgQuItemId) {
if (logicType === "1") {
if (logicStatus) {
skQuestion(quItemBody.next(), skQuId, logicId, function () {
//重新编题号
});
if (skQuId === "1" || skQuId === "2") {
isbreak = true;
}
} else {
var hidQuItemBodys = $(".hidFor" + logicId);
$(".hidFor" + logicId).removeClass("hidFor" + logicId);
var curPageNo = quItemBody.find(".pageNo").val();
$.each(hidQuItemBodys, function () {
var thQuItemBodyClass = $(this).attr("class");
var thPageNo = $(this).find(".pageNo").val();
if (
thQuItemBodyClass.indexOf("hidFor") < 0 &&
thPageNo == curPageNo
) {
$(this).show();
//$(".hidFor"+loginId).fadeIn();
//回答标记与逻辑设置没有关系
$(this).find(".answerTag").attr("disabled", false);
}
});
}
} else {
if (logicStatus) {
var hidQuItemBodys = $(".hidFor" + logicId);
$(".hidFor" + logicId).removeClass("hidFor" + logicId);
var curPageNo = quItemBody.find(".pageNo").val();
$.each(hidQuItemBodys, function () {
var hidQuItemBody = $(this);
var hidQuId = $(this).find(".quId").val();
if (quType == "CHECKBOX" || quType == "RADIO") {
$.each(quLogicItems, function () {
var thLoginItem = $(this);
var thSkQuId = thLoginItem.find(".skQuId").val();
var thLogicType = thLoginItem
.find(".logicType")
.val();
var thLogicId = thLoginItem.find(".logicId").val();
var logicHidForClass = "hidFor" + thLogicId;
// console.debug(logicHidForClass);
if (thLogicType === "2" && thSkQuId === hidQuId) {
hidQuItemBody.removeClass(logicHidForClass);
}
});
}
var thQuItemBodyClass = $(this).attr("class");
var thPageNo = $(this).find(".pageNo").val();
if (
thQuItemBodyClass.indexOf("hidFor") < 0 &&
thPageNo == curPageNo
) {
$(this).show();
$(this).find(".answerTag").attr("disabled", false);
}
});
} else {
/*
*/
var isHide = true;
if (quType == "CHECKBOX" || quType == "RADIO") {
//先判断有没有逻辑已经触发了
$.each(quLogicItems, function () {
var thLoginItem = $(this);
var thCgQuItemId = thLoginItem
.find(".cgQuItemId")
.val();
var thSkQuId = thLoginItem.find(".skQuId").val();
var thLogicType = thLoginItem.find(".logicType").val();
var thLogicId = thLoginItem.find(".logicId").val();
if (thLogicType === "2" && thSkQuId === skQuId) {
var thCgQuOptionItem = quItemBody.find(
".dwQuOptionItemContent input[type='checkbox'][value='" +
thCgQuItemId +
"'],.dwQuOptionItemContent input[type='radio'][value='" +
thCgQuItemId +
"']"
);
var thCgQuOptionStatus =
thCgQuOptionItem.prop("checked");
if (thCgQuOptionStatus) {
isHide = false;
return false;
}
}
});
}
if (isHide) {
var hidQuItemBody = $(
".quId[value='" + skQuId + "']"
).parents(".li_surveyQuItemBody");
hidQuItemBody.hide();
hidQuItemBody.addClass("hidFor" + logicId);
hidQuItemBody.find(".answerTag").attr("disabled", true);
}
}
}
return false;
}
});
if (isbreak) {
return false;
}
});
} else if (quType === "FILLBLANK") {
//遍历每个逻辑设置
var quOptionItems = quItemBody.find(".dwQuOptionItemContent");
var thVal = thFormElementObj.val();
$.each(quLogicItems, function () {
var loginItem = $(this);
var cgQuItemId = loginItem.find(".cgQuItemId").val();
var skQuId = loginItem.find(".skQuId").val();
var logicId = loginItem.find(".logicId").val();
var logicType = loginItem.find(".logicType").val();
if (logicType === "1") {
//跳转
if (thVal != "") {
//逻辑选项被选中状态,激活状态
skQuestion(quItemBody.next(), skQuId, logicId, function () {
//重新编题号
});
if (skQuId === "1" || skQuId === "2") {
isbreak = true;
}
} else {
//逻辑选项未被选中状态,未激活
//$(".hidFor"+loginId).slideDown("slow");
var hidQuItemBodys = $(".hidFor" + logicId);
$(".hidFor" + logicId).removeClass("hidFor" + logicId);
var curPageNo = quItemBody.find(".pageNo").val();
$.each(hidQuItemBodys, function () {
var thQuItemBodyClass = $(this).attr("class");
var thPageNo = $(this).find(".pageNo").val();
if (
thQuItemBodyClass.indexOf("hidFor") < 0 &&
thPageNo == curPageNo
) {
$(this).show();
//$(".hidFor"+loginId).fadeIn();
//回答标记与逻辑设置没有关系
$(this).find(".answerTag").attr("disabled", false);
}
});
}
} else {
//显示
//逻辑类型为“显示” quType=1
if (thVal != "") {
//逻辑选项被选中状态,激活状态 显示题
var hidQuItemBodys = $(".hidFor" + logicId);
$(".hidFor" + logicId).removeClass("hidFor" + logicId);
var curPageNo = quItemBody.find(".pageNo").val();
$.each(hidQuItemBodys, function () {
var thQuItemBodyClass = $(this).attr("class");
var thPageNo = $(this).find(".pageNo").val();
if (
thQuItemBodyClass.indexOf("hidFor") < 0 &&
thPageNo == curPageNo
) {
$(this).show();
$(this).find(".answerTag").attr("disabled", false);
}
});
} else {
/*
*/
var hidQuItemBody = $(".quId[value='" + skQuId + "']").parents(
".li_surveyQuItemBody"
);
hidQuItemBody.hide();
hidQuItemBody.addClass("hidFor" + logicId);
hidQuItemBody.find(".answerTag").attr("disabled", true);
}
}
});
}
resetQuNumLogic();
}
}
resetQuNumLogic();
function skQuestion(nextQuItemBody, skQuId, logicId, callback) {
if (nextQuItemBody[0]) {
//submitSurveyBtn
var nextQuType = nextQuItemBody.find(".quType").val();
var nextQuId = nextQuItemBody.find(".quId").val();
var nextAnswerTag = nextQuItemBody.find(".answerTag");
//如果是新一页则显示当前页所有题
if (nextQuType == "PAGETAG") {
if (validateForms()) {
nextQuItemBody.find(".nextPage_a").click();
}
}
//var quType=quItemBody.find(".quType").val();
//var quId=quItemBody.find(".quId").val();
//判断跳转类型
if (skQuId == null) {
//对于逻辑选项未被选中的情况
} else if (nextQuType == "PAGETAG") {
skQuestion(nextQuItemBody.next(), skQuId, logicId, function () {});
} else if (
nextQuType != "submitSurveyBtn" &&
nextQuType != "PAGETAG" &&
(skQuId === "1" || skQuId === "2" || nextQuId != skQuId)
) {
//对于逻辑项是被选定的情况下
nextAnswerTag.attr("disabled", true);
//nextQuItemBody.slideUp("slow");
nextQuItemBody.hide();
//nextQuItemBody.fadeOut();
nextQuItemBody.addClass("hidFor" + logicId);
skQuestion(nextQuItemBody.next(), skQuId, logicId, function () {});
}
/*
else if(nextQuItemBody.is(":hidden")){
skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
});
}else if(nextQuType!="submitSurveyBtn" && nextQuType!="PAGETAG" && (skQuId==="1" || skQuId==="2" || nextQuId!=skQuId) ){
//对于逻辑项是被选定的情况下
nextAnswerTag.attr("disabled",true);
//nextQuItemBody.slideUp("slow");
nextQuItemBody.hide();
//nextQuItemBody.fadeOut();
nextQuItemBody.addClass("hidFor"+logicId);
skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
});
}
*/
} else {
callback();
}
}
/*
$("#dwSurveyQuContent .dwQuOptionItemContent").hover(function(){
$(this).css({"border-color":"#1e94fc"});
$(this).css({"background":"rgb(227, 237, 249)"});
},function(){
if(!($(this).hasClass("active") || $(this).hasClass("inputchecked"))){
$(this).css({"border-color":"rgb(199, 225, 247)"});
$(this).css({"background":"rgb(255, 255, 255)"});
}
});
*/
bindDateEvent();
});
}
/**********************处理答题进度条************************/
//$("#resultProgress").progressbar({value: bfbFloat});
function answerProgressbar(thObj) {
var quItemBody = thObj.parents(".li_surveyQuItemBody ");
var quType = quItemBody.find(".quType").val();
if (quType === "RADIO") {
//quItemBody.find(".answerTag").val(1);
var checks = quItemBody.find("input[type='radio']:checked");
if (checks[0]) {
quItemBody.find(".answerTag").val(1);
} else {
quItemBody.find(".answerTag").val(0);
}
} else if (quType == "CHECKBOX") {
var checks = quItemBody.find("input[type='checkbox']:checked");
if (checks[0]) {
quItemBody.find(".answerTag").val(1);
} else {
quItemBody.find(".answerTag").val(0);
}
} else if (quType === "FILLBLANK") {
var thVal = thObj.val();
if (thVal != "") {
quItemBody.find(".answerTag").val(1);
} else {
quItemBody.find(".answerTag").val(0);
}
} else if (quType === "ORDERQU") {
//quOrderByLeftUl
var orderByLabels = quItemBody.find(".quOrderByLeftUl label");
if (!orderByLabels[0]) {
quItemBody.find(".answerTag").val(1);
} else {
quItemBody.find(".answerTag").val(0);
}
} else if (quType === "SCORE") {
var quScoreOptionTr = thObj.parents(".quScoreOptionTr");
var scoreNumInput = quScoreOptionTr.find(".scoreNumInput");
if (scoreNumInput.val() != "") {
quScoreOptionTr.find(".answerTag").val(1);
} else {
quScoreOptionTr.find(".answerTag").val(0);
}
} else if (quType === "MULTIFILLBLANK") {
var mFillblankTableTr = thObj.parents(".mFillblankTableTr");
if (thObj.val() != "") {
mFillblankTableTr.find(".answerTag").val(1);
} else {
mFillblankTableTr.find(".answerTag").val(0);
}
}
var totalQuSize = $("#dwSurveyQuContent .answerTag:enabled").size();
var answerTag1 = $("#dwSurveyQuContent .answerTag[value='1']:enabled");
var answerQuSize = 0;
if (answerTag1[0]) {
answerQuSize = answerTag1.size();
}
var newValue = parseInt((answerQuSize / totalQuSize) * 100);
$("#resultProgressRoot .progress-label").text("完成度:" + newValue + "%");
$("#resultProgress").progressbar("option", "value", newValue);
}
function validateCheck(quItemBody, isSubForm) {
if (quItemBody.is(":visible")) {
var quId = quItemBody.find(".quId").val();
var quType = quItemBody.find(".quType").val();
var isRequired = quItemBody.find(".isRequired").val();
var validateStatus = false;
var checkType = "";
var errorMsg = null;
if (isRequired === "0") {
validateStatus = true;
return true;
}
if (quType === "RADIO") {
var hv = quItemBody.find(".hv").val();
if (hv == "4") {
var radioSelectVal = quItemBody.find("select.radioSelect").val();
if (radioSelectVal != "" && radioSelectVal != "0") {
var radioSelect = quItemBody.find(".radioSelect");
var radioSelectVal = radioSelect.val();
var radioSelectName = radioSelect.attr("name");
var quCoItemUlLi = radioSelect.parents("li.quCoItemUlLi");
var quItemInputCase = quCoItemUlLi.find(
".quItemInputCase[itemid='" + radioSelectVal + "']"
);
var isNote = quItemInputCase.find(".isNote").val();
if (isNote == "1") {
var curText = quCoItemUlLi.find(
".dwQuOptionItemNote[name='text_" +
radioSelectName +
"_" +
radioSelectVal +
"']"
);
var curTextValue = curText.val();
var checkType = quItemInputCase.find(".checkType").val();
var isRequiredFill = quItemInputCase.find(".isRequiredFill").val();
if (isRequiredFill == "1" || curTextValue != "") {
validateStatus = checkoutData(checkType, curText);
} else {
validateStatus = true;
}
} else {
validateStatus = true;
}
}
} else {
validateStatus = quItemBody.find("input[type='radio']:checked")[0];
if (validateStatus) {
var curRadio = quItemBody.find("input[type='radio']:checked");
var curText = curRadio
.parents(".dwQuOptionItemContent")
.find("input[type='text']:visible");
if (curText[0]) {
var curTextValue = curText.val();
checkType = curRadio
.parents(".dwQuOptionItemContent")
.find(".checkType")
.val();
var isRequiredFill = curRadio
.parents(".dwQuOptionItemContent")
.find(".isRequiredFill")
.val();
if (isRequiredFill != "1") {
validateStatus = checkoutData(checkType, curTextValue);
}
}
}
}
} else if (quType === "CHECKBOX") {
validateStatus = quItemBody.find("input[type='checkbox']:checked")[0];
var paramInt01 = quItemBody.find(".paramInt01").val();
if (paramInt01 > 0) {
var checkeds = quItemBody.find("input[type='checkbox']:checked");
if (checkeds[0] && checkeds.size() < paramInt01) {
errorMsg = "请保证最少选择" + paramInt01 + "项内容";
validateStatus = false;
}
}
if (validateStatus) {
// isNote checkType isRequiredFill
var curCheckboxs = quItemBody.find("input[type='checkbox']:checked");
$.each(curCheckboxs, function () {
var curText = $(this)
.parents(".dwQuOptionItemContent")
.find("input[type='text']:visible");
if (curText[0]) {
var curTextValue = curText.val();
checkType = $(this)
.parents(".dwQuOptionItemContent")
.find(".checkType")
.val();
var isRequiredFill = $(this)
.parents(".dwQuOptionItemContent")
.find(".isRequiredFill")
.val();
if (isRequiredFill != "1") {
validateStatus = checkoutData(checkType, curTextValue);
}
}
if (!validateStatus) {
return false;
}
});
}
} else if (quType === "FILLBLANK") {
var value = quItemBody.find(".fillblankInput").val();
validateStatus = value != "";
checkType = quItemBody.find(".checkType").val();
if (validateStatus) {
validateStatus = checkoutData(checkType, value);
}
} else if (quType === "ORDERQU") {
//quItemBody.find(".quOrderByLeftUl label");
validateStatus = !quItemBody.find(".quOrderItemHidInput[value='']")[0];
} else if (quType === "SCORE") {
validateStatus = true;
var quScoreOptionTrs = quItemBody.find(".quScoreOptionTr");
$.each(quScoreOptionTrs, function () {
var scoreNumInput = $(this).find(".scoreNumInput");
if (scoreNumInput.val() === "") {
validateStatus = false;
return false;
}
});
} else if (quType === "MULTIFILLBLANK") {
validateStatus = true;
var quScoreOptionTrs = quItemBody.find(".mFillblankTableTr");
var paramInt01 = 0;
if (quItemBody.find(".paramInt01")[0]) {
paramInt01 = quItemBody.find(".paramInt01").val();
}
var anNum = 0;
$.each(quScoreOptionTrs, function () {
var scoreNumInput = $(this).find(".dwMFillblankInput");
if (scoreNumInput.val() != "") {
anNum++;
}
});
if (validateStatus) {
if (paramInt01 != 0) {
if (anNum < paramInt01) {
validateStatus = false;
}
} else {
if (anNum < quScoreOptionTrs.size()) {
validateStatus = false;
}
}
}
} else if (quType === "UPLOADFILE") {
validateStatus = quItemBody.find(".fileuploadSaveValue")[0];
} else if (
quType === "submitSurveyBtn" ||
quType === "PARAGRAPH" ||
quType === "PAGETAG"
) {
return true;
}
} else {
validateStatus = true;
}
if (validateStatus) {
quItemBody.find(".errorItem").remove();
} else {
/*if(isSubForm && !quItemBody.find(".errorItem")[0]){
var errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请检查题目答案,为必答项!</label></div>";
quItemBody.find(".surveyQuItemContent").append(errorHtml);
}*/
if (isSubForm) {
if (quItemBody.find(".errorItem")[0]) {
quItemBody.find(".errorItem").remove();
}
var errorHtml =
'<div class="errorItem"><label for="" class="error">请检查题目答案,为必答项!</label></div>';
if (errorMsg != null) {
errorHtml =
'<div class="errorItem"><label for="" class="error">' +
errorMsg +
"</label></div>";
} else {
if (checkType == "EMAIL") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入Email为必答项</label></div>';
} else if (checkType == "UNSTRCN") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入非中文字符,为必答项!</label></div>';
} else if (checkType == "STRCN") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入中文字符,为必答项!</label></div>';
} else if (checkType == "NUM") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入数字,为必答项!</label></div>';
} else if (checkType == "DIGITS") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入整数,为必答项!</label></div>';
} else if (checkType == "TELENUM") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入电话,为必答项!</label></div>';
} else if (checkType == "PHONENUM") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入手机,为必答项!</label></div>';
} else if (checkType == "TELE_PHONE_NUM") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入电话或手机,为必答项!</label></div>';
} else if (checkType == "DATE") {
//2014-01-01 12:00:00
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入日期时间类型,为必答项!</label></div>';
} else if (checkType == "IDENTCODE") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入身份证号,为必答项!</label></div>';
} else if (checkType == "ZIPCODE") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入邮编,为必答项!</label></div>';
} else if (checkType == "URL") {
errorHtml =
'<div class="errorItem"><label for="" class="error">请输入URL为必答项</label></div>';
}
}
quItemBody.find(".surveyQuItemContent").append(errorHtml);
}
}
return validateStatus;
}
function refreshAutoCode(codeImgId) {
var ctx = $("#ctx").val();
$("#" + codeImgId).attr("src", ctx + "/jcaptcha.action");
}