/**
*
* 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();
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;
});
$(".submitSurvey").click(function(){
if(validateForms()){
$("#surveyForm").submit();
}
return false;
});
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 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"});
}
});
});
}
//评分题
$(".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+" 分");
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("分");
}
});
}
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" && quType ==="RADIO"){
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(".quOrderByLeftUl label")[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(".quCoItem").append(errorHtml);
}
}
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);
}
});
$(".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);
answerProgressbar(thObj);
var quItemBody = $(this).parents(".li_surveyQuItemBody");
validateCheck(quItemBody,false);
return false;
});
$(".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);
lgcommon(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);
}
lgcommon(thObj.find("input[type='checkbox']"));
}
answerProgressbar(thObj);
validateCheck(quItemBody,false);
});
//填空题
$(".fillblankInput,.dwMFillblankInput").blur(function(){
lgcommon($(this));
answerProgressbar($(this));
var checkType = $(this).parents(".li_surveyQuItemBody").find(".checkType").val();
if(checkType!="DATE"){
validateCheck($(this).parents(".li_surveyQuItemBody"),true);
}
});
resetQuNum();
function resetQuNum(){
var quCoNums=$(".quCoNum");
$.each(quCoNums,function(i,item){
$(this).html((i+1)+"、");
});
}
/**********************处理答题进度条************************/
//$("#resultProgress").progressbar({value: bfbFloat});
function answerProgressbar(thObj){
var quItemBody=thObj.parents(".li_surveyQuItemBody ");
var quType=quItemBody.find(".quType").val();
if(quType==="RADIO"){
var hv = quItemBody.find(".hv").val();
if(hv=="4"){
var radioSelectVal = quItemBody.find(".radioSelect").val();
if(radioSelectVal!=""){
quItemBody.find(".answerTag").val(1);
quItemBody.find(".answerTag").attr("value",1);
}else{
quItemBody.find(".answerTag").val(0);
quItemBody.find(".answerTag").attr("value",0);
}
}else{
//quItemBody.find(".answerTag").val(1);
var checks=quItemBody.find("input[type='radio']:checked");
if(checks[0]){
quItemBody.find(".answerTag").val(1);
quItemBody.find(".answerTag").attr("value",1);
}else{
quItemBody.find(".answerTag").val(0);
quItemBody.find(".answerTag").attr("value",0);
}
}
}else if(quType=="CHECKBOX"){
var checks=quItemBody.find("input[type='checkbox']:checked");
if(checks[0]){
quItemBody.find(".answerTag").val(1);
quItemBody.find(".answerTag").attr("value",1);
}else{
quItemBody.find(".answerTag").val(0);
quItemBody.find(".answerTag").attr("value",0);
}
}else if(quType==="FILLBLANK"){
var thVal=thObj.val();
if(thVal!=""){
quItemBody.find(".answerTag").val(1);
quItemBody.find(".answerTag").attr("value",1);
}else{
quItemBody.find(".answerTag").val(0);
quItemBody.find(".answerTag").attr("value",0);
}
}else if(quType==="ORDERQU"){
//quOrderByLeftUl
var orderByLabels=quItemBody.find(".quOrderByLeftUl label");
if(!orderByLabels[0]){
quItemBody.find(".answerTag").val(1);
quItemBody.find(".answerTag").attr("value",1);
}else{
quItemBody.find(".answerTag").val(0);
quItemBody.find(".answerTag").attr("value",0);
}
}else if(quType==="MULTIFILLBLANK"){
var mFillblankTableTr=thObj.parents(".mFillblankTableTr");
if(thObj.val()!=""){
mFillblankTableTr.find(".answerTag").val(1);
mFillblankTableTr.find(".answerTag").attr("value",1);
}else{
mFillblankTableTr.find(".answerTag").val(0);
mFillblankTableTr.find(".answerTag").attr("value",0);
}
}else if( quType==="SCORE" ){
//
var quScoreOptionTr=thObj.parents(".quScoreOptionTr");
var scoreNumInput=quScoreOptionTr.find(".scoreNumInput");
if(scoreNumInput.val()!=""){
quScoreOptionTr.find(".answerTag").val(1);
quScoreOptionTr.find(".answerTag").attr("value",1);
}else{
quScoreOptionTr.find(".answerTag").val(0);
quScoreOptionTr.find(".answerTag").attr("value",0);
}
}
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);
}
/*
$("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();
}