/** * * 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); } }); }); function sww(){ $(".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"); $("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"); $(window).scrollTop(10); return false; }); $(".m_clickQuOrderItem").click(function(){ var visibleOrderbyNum=$(this).parents().find(".m_orderby_num:visible"); var thOrderbyNum=$(this).find(".m_orderby_num"); if(!$(this).find(".m_orderby_num:visible")[0]){ var thNum=0; $(this).append(""); var mOrderbySel=$(this).find(".m_orderby_sel"); var quOrderItems=$(this).parents().find(".m_clickQuOrderItem"); $.each(quOrderItems,function(i,item){ mOrderbySel.append(""); 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(); lgcommon($(this)); validateCheck($(this).parents(".li_surveyQuItemBody"),false); 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); validateCheck($(this).parents(".li_surveyQuItemBody"),false); 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 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"){ var radioSelectVal = quItemBody.find(".radioSelect").val(); if(radioSelectVal!="" && radioSelectVal!="0"){ validateStatus = true; }else{ validateStatus = false; } }else{ validateStatus=quItemBody.find("input[type='radio']:checked")[0]; } }else if(quType==="CHECKBOX"){ validateStatus=quItemBody.find("input[type='checkbox']:checked")[0]; }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]")[0]; }else if(quType==="MULTIFILLBLANK"){ validateStatus=true; var quScoreOptionTrs=quItemBody.find(".mFillblankTableTr"); var paramInt01=quItemBody.find(".paramInt01"); var anNum = 0; $.each(quScoreOptionTrs,function(){ var scoreNumInput=$(this).find(".dwMFillblankInput"); if(scoreNumInput.val()!=""){ anNum++; } }); if(paramInt01[0]){ if(paramInt01.val()=='0'){ if(anNum!=quScoreOptionTrs.size()) { validateStatus = false; } }else{ if(anNum"; 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(".surveyQuItemContent").append(errorHtml); } } return validateStatus; } $(".submitSurvey").click(function(){ if(validateForms()){ $("#surveyForm").submit(); } return false; }); $(".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"); validateCheck(quItemBody,false); return false; }); $("#dwSurveyQuContent .dwQuOptionItemContent").unbind(); $("#dwSurveyQuContent .dwQuOptionItemContent").click(function(){ clickItem($(this)); lgcommon($(this)); validateCheck($(this).parents(".li_surveyQuItemBody"),false); $(".fillblankInput,.dwMFillblankInput,.dwChenMFillblankInput").blur(); }); 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"); }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"); } }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"); } } //填空题 $(".fillblankInput,.dwMFillblankInput,.dwChenMFillblankInput").blur(function(){ lgcommon($(this)); validateCheck($(this).parents(".li_surveyQuItemBody"),true); }); function resetQuNum(){ var quTitleNums=$(".quTitleNum"); $.each(quTitleNums,function(i,item){ $(this).text((i+1)+"、") }); } resetQuNum(); 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); } }); bindDateEvent(); } function refreshAutoCode(codeImgId){ var ctx = $("#ctx").val(); $("#"+codeImgId).attr("src",ctx+"/jcaptcha.action"); }