/** * * 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"); $("#sid").val(sid); $("#id").val(surveyId); $("#tag").val(tag); $("#ruleCode").val(ruleCode); if (tag != "" && (tag === "p" || tag === "s")) { $("#preview_head_top").show(); } else { $("#preview_head_top").remove(); } $.answerPage("p", sid, function () { querySurveyAll(function () { sww(); wwwUpload(); if (!$("#preview_head_top")[0]) { checkAnswerSurvey(sid); } }); }); }); function sww() { //分页设置 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; }); //var prevHost="http://file.diaowen.net"; var prevHost = $("#prevHost").val(); $(".submitSurvey").click(function () { if (validateForms()) { var thTxt = $(this).text(); if ($("#preview_head_top")[0]) { alert("预览模式不可提交!"); return false; } if (thTxt === "提 交") { $(".submitSurvey").css({ "background-position": "0 -320px" }); $(".submitSurvey").text("正在提交"); setTimeout(function () { $(".submitSurvey").css({ "background-position": "0 -200px" }); $(".submitSurvey").text("提 交"); }, 5000); $("#surveyForm").submit(); } else { console.warn("answer-p.html提交问卷"); // alert("5秒内禁止重复提交!"); } } return false; }); //评分题 $(".scoreNumTable tr td").click(function () { //scoreNumInput var quScoreOptionTr = $(this).parents(".quScoreOptionTr"); var tdText = $(this).text(); quScoreOptionTr.find(".scoreNumTable tr td").css({ background: "white" }); quScoreOptionTr.find(".scoreNumText").html($(this).text() + " 分"); $(this).prevAll().css({ background: "" }); $(this).css({ background: "" }); quScoreOptionTr.find(".scoreNumInput").val(tdText); quScoreOptionTr.find(".scoreNumText").html(tdText + " 分"); runlogic($(this)); answerProgressbar($(this)); validateCheck($(this).parents(".li_surveyQuItemBody"), false); }); bindScoreNumTdHover(); function bindScoreNumTdHover() { $(".scoreNumTable tr td").hover( function () { var quScoreOptionTr = $(this).parents(".quScoreOptionTr"); var scoreNumInput = quScoreOptionTr.find(".scoreNumInput").val(); if (scoreNumInput == "") { $(this).prevAll().css({ background: "" }); $(this).css({ background: "" }); quScoreOptionTr .find(".scoreNumText") .html($(this).text() + " 分"); } }, function () { var quScoreOptionTr = $(this).parents(".quScoreOptionTr"); var scoreNumInput = quScoreOptionTr.find(".scoreNumInput").val(); if (scoreNumInput == "") { $(this).prevAll().css({ background: "white" }); $(this).css({ background: "white" }); quScoreOptionTr.find(".scoreNumText").html("分"); } } ); } //排序题 //quOrderByCoItem bindQuOrderBySorts(); function bindQuOrderBySorts() { var quOrderByCoItems = $(".quOrderByCoItem"); $.each(quOrderByCoItems, function () { /* $(this).find( ".quOrderByLeftUl li" ).draggable({ connectToSortable: $(this).find(".quOrderByTable td"), helper: "clone", zIndex:2000, //revert :true, start: function(event, ui) { var quOrderByCoItem=$(this).parents(".quOrderByCoItem"); quOrderByCoItem.find( ".quOrderTabConnect" ).css({"background":"","border":"1px dotted red"}); }, drag: function(event, ui) { }, stop: function(event,ui){ var quOrderByCoItem=$(this).parents(".quOrderByCoItem"); quOrderByCoItem.find( ".quOrderTabConnect" ).css({"background":"","border":"1px solid #dbdbdb"}); } }); */ $(this) .find(".quOrderByLeftUl li") .sortable({ zIndex: 1000, scroll: false, opacity: 0.8, placeholderType: false, connectWith: $(this).find(".quOrderByTable td"), helper: function (event, ui) { return ( "" ); }, over: function (event, ui) {}, start: function (event, ui) {}, drag: function (event, ui) {}, stop: function (event, ui) { $(".quOrderByTable td").css({ background: "" }); //ui.item.html(""); answerProgressbar($(this)); validateCheck($(this).parents(".li_surveyQuItemBody"), false); }, }); var sortObjTempHtml = null; $(this) .find(".quOrderByTable td") .sortable({ //revert: true //dropOnEmpty:false, zIndex: 1000, scroll: false, opacity: 0.9, placeholderType: true, placeholder: "qu-order-highlight", connectWith: $(this).find(".quOrderByTable td"), over: function (event, ui) { $(".quOrderByTable td").css({ background: "" }); $(this).css({ background: "#FAEDC0" }); var quOrderItemLabel = $(this).find("label.quOrderItemLabel"); sortObjTempHtml = ""; if (quOrderItemLabel[0]) { sortObjTempHtml = quOrderItemLabel.html(); } /*sortObjTempHtml=""; if(lastLabelHtml!=""){ sortObjTempHtml=""; } */ //console.debug($(ui.helper).css("zIndex")+$(ui.helper).css("position")); }, receive: function (event, ui) { //当一个已连接的sortable对象接收到另一个sortable对象的元素后触发此事件。 //判断如果是从右边新移入的,但当前td中已经有了,就交换到右边去 var uiSenderClass = ui.sender.attr("class"); ui.sender.empty(); /* if(uiSenderClass.indexOf("quCoItemUlLi")<0){ ui.sender.append(sortObjTempHtml); } */ if (uiSenderClass.indexOf("quCoItemUlLi") < 0) { if (sortObjTempHtml != "") { ui.sender.append( "" ); } } else { if (sortObjTempHtml != "") { ui.sender.append( "" ); } } $(this).empty(); ui.item.clone().appendTo($(this)); var quCoOptionEdit = $(this).find(".quCoOptionEdit"); if (quCoOptionEdit[0]) { quCoOptionEdit.removeClass(); quCoOptionEdit.addClass("quOrderItemLabel"); } $(".quOrderByTable td").css({ background: "" }); //更新排序ID quCoItem quOrderByTableTr //bindQuOrderBySorts(); var quColItem = $(".li_surveyQuItemBody .quCoItem"); $.each(quColItem, function () { var quOrderyByTrs = $(this).find(".quOrderByTableTr"); $.each(quOrderyByTrs, function (i) { var quOrderItemHidInput = $(this).find(".quOrderItemHidInput"); quOrderItemHidInput.val(i + 1); }); }); /*var quOrderyByTrs=$(".quCoItem .quOrderByTableTr"); $.each(quOrderyByTrs,function(i){ var quOrderItemHidInput=$(this).find(".quOrderItemHidInput"); quOrderItemHidInput.val(i+1); });*/ }, start: function (event, ui) { $(".quOrderByTable td").css({ background: "" }); $(this).css({ background: "#FAEDC0" }); }, drag: function (event, ui) { $(".quOrderByTable td").css({ background: "" }); $(this).css({ background: "#FAEDC0" }); }, stop: function (event, ui) { $(".quOrderByTable td").css({ background: "" }); }, out: function (event, ui) { //$(".quOrderByTable td").css({"background":""}); }, activate: function (event, ui) { //$(".quOrderByTable td").css({"background":""}); //$(this).css({"background":"#FAEDC0"}); }, }); }); } /**初始化表单骓证配置**/ 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; } /******************************处理题目逻辑设置 **************************************/ //处理题目逻辑设置 /** 答题触发事件 **/ //初始化 处理默认逻辑跳转为显示,则先隐藏元素 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); } }); /** 单选与多选条件触发 自定义单选多选效果 操作结束后得调用逻辑判断 **/ $(".dwQuOptionItemContent").click(function () { var thObj = $(this); 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); dwQuInputLabel.addClass("checked"); thObj.find("input[type='radio']").prop("checked", true); runlogic(thObj.find("input[type='radio']")); } else if ("CHECKBOX" === quType) { //多选题 //quItemBody.find(".dwQuInputLabel").removeClass("checked"); var quInputLabelClass = dwQuInputLabel.attr("class"); if (quInputLabelClass.indexOf("checked") > 0) { dwQuInputLabel.removeClass("checked"); thObj.find("input[type='checkbox']").prop("checked", false); } else { dwQuInputLabel.addClass("checked"); thObj.find("input[type='checkbox']").prop("checked", true); } 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); alert("最多只支持选择" + paramInt02 + "项内容!"); return false; } } runlogic(thObj.find("input[type='checkbox']")); } answerProgressbar(thObj); validateCheck(quItemBody, false); }); $(".dwQuOptionItemNote").click(function () { return false; }); //填空题 $(".fillblankInput,.dwMFillblankInput").blur(function () { //$(this).css("borderColor","#D6D6FF"); var thVal = $(this).val(); runlogic($(this)); answerProgressbar($(this)); if (!$(this).hasClass("Wdate") || thVal != "") { validateCheck($(this).parents(".li_surveyQuItemBody"), true); } }); $(".radioSelect").change(function () { 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; }); //只要触发事件 function runlogic(thFormElementObj) { //thFormElementObj 当前关联的form表单元素 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(); //$("input[name='qu_"+quType+"_"+quId+"']").change(function(){}); if (quType === "RADIO" || quType === "CHECKBOX") { //判断是否选中 var quLgoicItem = null; //var thVal=thFormElementObj.val(); var quOptionItems = null; 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 { /* //$(".hidFor"+loginId).slideDown("slow"); $(".hidFor"+loginId).show(); //$(".hidFor"+loginId).fadeIn(); $(".hidFor"+loginId).removeClass("hidFor"+loginId); $(".hidFor"+loginId).find(".answerTag").attr("disabled",false); */ 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(); } } 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(); } } // resetQuNum(); function resetQuNum() { var quCoNums = $(".quCoNum"); $.each(quCoNums, function (i, item) { $(this).html(i + 1 + "、"); }); } 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"); // console.debug(thClass+":"+thClass.indexOf("hidFor")); if (thClass.indexOf("hidFor") < 0 && quCoNum[0]) { quCoNum.html(quIndex++ + "、"); } }); } /* $("input").unbind("click"); $("input").click(function(){ var quItemBody=$(this).parents(".li_surveyQuItemBody "); var quType=quItemBody.find(".quType").val(); if(quType=="RADIO"){ quItemBody.find(".answerTag").val(1); } var totalQuSize=$(".answerTag:enabled").size(); var answerTag1=$(".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); }); */ $("#mobileTdId").click(function () { $(this).next().slideToggle(); return false; }); bindDateEvent(); } 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 = ""; if (isRequired === "0") { validateStatus = true; return true; } if (quType === "RADIO") { var hv = quItemBody.find(".hv").val(); if (hv == "4" && quType === "RADIO") { var radioSelectVal = quItemBody.find(".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.parent().find("input[type='text']:visible"); if (curText[0]) { var curTextValue = curText.val(); checkType = curRadio.parent().find(".checkType").val(); var isRequiredFill = curRadio .parent() .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) { quItemBody .find(".quCoItem") .append( '
" ); validateStatus = false; } else { quItemBody.find(".quCoItem .errorItem").remove(); } } if (validateStatus) { // isNote checkType isRequiredFill var curCheckboxs = quItemBody.find("input[type='checkbox']:checked"); $.each(curCheckboxs, function () { var curText = $(this).parent().find("input[type='text']:visible"); if (curText[0]) { var curTextValue = curText.val(); checkType = $(this).parent().find(".checkType").val(); var isRequiredFill = $(this).parent().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(".quOrderByLeftUl label")[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 { // isSubForm && !quItemBody.find(".errorItem")[0] if (isSubForm) { if (quItemBody.find(".errorItem")[0]) { quItemBody.find(".errorItem").remove(); } var errorHtml = '
'; if (checkType == "EMAIL") { errorHtml = '
'; } else if (checkType == "UNSTRCN") { errorHtml = '
'; } else if (checkType == "STRCN") { errorHtml = '
'; } else if (checkType == "NUM") { errorHtml = '
'; } else if (checkType == "DIGITS") { errorHtml = '
'; } else if (checkType == "TELENUM") { errorHtml = '
'; } else if (checkType == "PHONENUM") { errorHtml = '
'; } else if (checkType == "TELE_PHONE_NUM") { errorHtml = '
'; } else if (checkType == "DATE") { //2014-01-01 12:00:00 errorHtml = '
'; } else if (checkType == "IDENTCODE") { errorHtml = '
'; } else if (checkType == "ZIPCODE") { errorHtml = '
'; } else if (checkType == "URL") { errorHtml = '
'; } quItemBody.find(".quCoItem").append(errorHtml); } } return validateStatus; } /**********************处理答题进度条************************/ //$("#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); }