12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184 |
- /**
- *
- * 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{
- 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 "<label class='quOrderItemLabel'>"+$(this).text()+"</label>";
- },
- over:function(event,ui){
- },
- start: function(event, ui) {
- },
- drag: function(event, ui) {
- },
- stop: function(event,ui){
- $(".quOrderByTable td").css({"background":""});
- //ui.item.html("<label class='quOrderItemLabel'>"+ui.item.text()+"</label>");
- 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="<label class='quOrderItemLabel'>"+$(this).find("label:last-child").html()+"</label>";
- } */
- //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("<label class='quOrderItemLabel'>"+sortObjTempHtml+"</label>");
- }
- }else{
- if(sortObjTempHtml!=""){
- ui.sender.append("<label class='editAble quCoOptionEdit'>"+sortObjTempHtml+"</label>");
- }
- }
- $(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;
- }
- $('#submitUserInfo').click(function () {
- let userName = $('#userName').val()
- let userPhone = $('#userPhone').val()
- if (!userName) {
- $('#userName').next().find('label').text('姓名为必填项!')
- $('#userName').next().show(100)
- } else {
- $('#userName').next().hide(100)
- }
- if (!userPhone) {
- $('#userPhone').next().find('label').text('手机号码为必填项!')
- $('#userPhone').next().show(100)
- } else {
- $('#userPhone').next().hide(100)
- }
- if (userName && userPhone) {
- $('#sUserName').val(userName)
- $('#sUserPhone').val(userPhone)
- $('#wrap2').slideUp(1000)
- }
- })
- 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("<div class=\"errorItem\"><label class=\"error\">请保证最少选择"+paramInt01+"项内容</label></div>");
- 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="<div class=\"errorItem\"><label for=\"\" class=\"error\">请检查题目答案,为必答项!</label></div>";
- 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(".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" ){
- //<input type="hidden" class="answerTag" value="0" >
- 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);
- }
|