ans-p.js 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158
  1. /**
  2. *
  3. * DWSurvey 3.0 中关于问卷设计Javascript
  4. *
  5. * @desc: design survey
  6. * @author: keyuan(@keyuan, keyuan258@gmail.com)
  7. * @github: https://github.com/wkeyuan/DWSurvey
  8. *
  9. * Copyright 2012, 2017 调问问卷(DWSurvey,http://dwsurvey.net)
  10. *
  11. */
  12. $(document).ready(function(){
  13. var ctx=$("#ctx").val();
  14. var sid = $.getUrlParam("sid");
  15. var surveyId = $.getUrlParam("surveyId");
  16. var tag = $.getUrlParam("tag");
  17. var ruleCode = $.getUrlParam("ruleCode");
  18. $("#sid").val(sid);
  19. $("#id").val(surveyId);
  20. $("#tag").val(tag);
  21. $("#ruleCode").val(ruleCode);
  22. if(tag!="" && (tag==="p" || tag==="s")){
  23. $("#preview_head_top").show();
  24. }else{
  25. $("#preview_head_top").remove();
  26. }
  27. $.answerPage("p",sid,function(){
  28. querySurveyAll(function(){
  29. sww();
  30. wwwUpload();
  31. if(!$("#preview_head_top")[0]){
  32. checkAnswerSurvey(sid);
  33. }
  34. });
  35. });
  36. });
  37. function sww() {
  38. //分页设置 nextPage_a prevPage_a
  39. $(".nextPage_a").click(function(){
  40. if(validateForms()){
  41. var thParent=$(this).parent();
  42. var nextPageNo=thParent.find("input[name='nextPageNo']").val();
  43. // $(".li_surveyQuItemBody").hide();
  44. // $(".surveyQu_"+nextPageNo).fadeIn("slow");
  45. //$(window).scrollTop(10);
  46. var curPageNo = parseInt(nextPageNo)-1;
  47. $(".surveyQu_"+curPageNo).hide();
  48. var nextPageQus = $(".surveyQu_"+nextPageNo);
  49. $.each(nextPageQus,function(){
  50. var quItemBody = $(this);
  51. var itemBodyClass = quItemBody.attr("class");
  52. var quType = quItemBody.find(".quType").val();
  53. if(quType==="PAGETAG" || quType==="submitSurveyBtn"){
  54. quItemBody.show();
  55. }
  56. if(itemBodyClass.indexOf("hidFor")<0){
  57. quItemBody.show();
  58. }
  59. });
  60. var nextPageItems = $(".surveyQu_"+nextPageNo+":visible");
  61. if(nextPageItems[0]&&nextPageItems.size()<=1){
  62. $(nextPageItems[0]).find(".nextPage_a").click();
  63. }
  64. $("html,body").animate({scrollTop:10},500);
  65. };
  66. return false;
  67. });
  68. $(".prevPage_a").click(function(){
  69. var thParent=$(this).parent();
  70. var prevPageNo=thParent.find("input[name='prevPageNo']").val();
  71. //$(".li_surveyQuItemBody").hide();
  72. //$(".surveyQu_"+prevPageNo).fadeIn("slow");
  73. var curPageNo = parseInt(prevPageNo)+1;
  74. $(".surveyQu_"+curPageNo).hide();
  75. var prevPageQus = $(".surveyQu_"+prevPageNo);
  76. $.each(prevPageQus,function(){
  77. var quItemBody = $(this);
  78. var itemBodyClass = quItemBody.attr("class");
  79. //alert(itemBodyClass.indexOf("hidFor"));
  80. var quType = quItemBody.find(".quType").val();
  81. if(quType==="PAGETAG"){
  82. quItemBody.show();
  83. }
  84. if(itemBodyClass.indexOf("hidFor")<0){
  85. quItemBody.show();
  86. }
  87. });
  88. $(window).scrollTop(10);
  89. return false;
  90. });
  91. //var prevHost="http://file.diaowen.net";
  92. var prevHost=$("#prevHost").val();
  93. $(".submitSurvey").click(function(){
  94. if(validateForms()){
  95. var thTxt = $(this).text();
  96. if($("#preview_head_top")[0]){
  97. alert("预览模式不可提交!");
  98. return false;
  99. }
  100. if(thTxt==="提 交"){
  101. $(".submitSurvey").css({"background-position": "0 -320px"});
  102. $(".submitSurvey").text("正在提交");
  103. setTimeout(function(){
  104. $(".submitSurvey").css({"background-position": "0 -200px"});
  105. $(".submitSurvey").text("提 交");
  106. },5000);
  107. $("#surveyForm").submit();
  108. }else{
  109. alert("5秒内禁止重复提交!");
  110. }
  111. }
  112. return false;
  113. });
  114. //评分题
  115. $(".scoreNumTable tr td").click(function(){
  116. //scoreNumInput
  117. var quScoreOptionTr=$(this).parents(".quScoreOptionTr");
  118. var tdText=$(this).text();
  119. quScoreOptionTr.find(".scoreNumTable tr td").css({"background":"white"});
  120. quScoreOptionTr.find(".scoreNumText").html($(this).text()+"&nbsp;分");
  121. $(this).prevAll().css({"background":""});
  122. $(this).css({"background":""});
  123. quScoreOptionTr.find(".scoreNumInput").val(tdText);
  124. quScoreOptionTr.find(".scoreNumText").html(tdText+"&nbsp;分");
  125. runlogic($(this));
  126. answerProgressbar($(this));
  127. validateCheck($(this).parents(".li_surveyQuItemBody"),false);
  128. });
  129. bindScoreNumTdHover();
  130. function bindScoreNumTdHover(){
  131. $(".scoreNumTable tr td").hover(function(){
  132. var quScoreOptionTr = $(this).parents(".quScoreOptionTr");
  133. var scoreNumInput=quScoreOptionTr.find(".scoreNumInput").val();
  134. if(scoreNumInput==""){
  135. $(this).prevAll().css({"background":""});
  136. $(this).css({"background":""});
  137. quScoreOptionTr.find(".scoreNumText").html($(this).text()+"&nbsp;分");
  138. }
  139. },function(){
  140. var quScoreOptionTr = $(this).parents(".quScoreOptionTr");
  141. var scoreNumInput=quScoreOptionTr.find(".scoreNumInput").val();
  142. if(scoreNumInput==""){
  143. $(this).prevAll().css({"background":"white"});
  144. $(this).css({"background":"white"});
  145. quScoreOptionTr.find(".scoreNumText").html("分");
  146. }
  147. });
  148. }
  149. //排序题
  150. //quOrderByCoItem
  151. bindQuOrderBySorts();
  152. function bindQuOrderBySorts() {
  153. var quOrderByCoItems=$(".quOrderByCoItem");
  154. $.each(quOrderByCoItems,function(){
  155. /* $(this).find( ".quOrderByLeftUl li" ).draggable({
  156. connectToSortable: $(this).find(".quOrderByTable td"),
  157. helper: "clone",
  158. zIndex:2000,
  159. //revert :true,
  160. start: function(event, ui) {
  161. var quOrderByCoItem=$(this).parents(".quOrderByCoItem");
  162. quOrderByCoItem.find( ".quOrderTabConnect" ).css({"background":"","border":"1px dotted red"});
  163. },
  164. drag: function(event, ui) {
  165. },
  166. stop: function(event,ui){
  167. var quOrderByCoItem=$(this).parents(".quOrderByCoItem");
  168. quOrderByCoItem.find( ".quOrderTabConnect" ).css({"background":"","border":"1px solid #dbdbdb"});
  169. }
  170. }); */
  171. $(this).find( ".quOrderByLeftUl li" ).sortable({
  172. zIndex:1000,
  173. scroll :false,
  174. opacity : 0.8,
  175. placeholderType:false,
  176. connectWith:$(this).find( ".quOrderByTable td" ),
  177. helper: function(event,ui){
  178. return "<label class='quOrderItemLabel'>"+$(this).text()+"</label>";
  179. },
  180. over:function(event,ui){
  181. },
  182. start: function(event, ui) {
  183. },
  184. drag: function(event, ui) {
  185. },
  186. stop: function(event,ui){
  187. $(".quOrderByTable td").css({"background":""});
  188. //ui.item.html("<label class='quOrderItemLabel'>"+ui.item.text()+"</label>");
  189. answerProgressbar($(this));
  190. validateCheck($(this).parents(".li_surveyQuItemBody"),false);
  191. }
  192. });
  193. var sortObjTempHtml=null;
  194. $(this).find( ".quOrderByTable td" ).sortable({
  195. //revert: true
  196. //dropOnEmpty:false,
  197. zIndex:1000,
  198. scroll :false,
  199. opacity : 0.9,
  200. placeholderType:true,
  201. placeholder:"qu-order-highlight",
  202. connectWith:$(this).find( ".quOrderByTable td" ),
  203. over:function(event,ui){
  204. $(".quOrderByTable td").css({"background":""});
  205. $(this).css({"background":"#FAEDC0"});
  206. var quOrderItemLabel=$(this).find("label.quOrderItemLabel");
  207. sortObjTempHtml="";
  208. if(quOrderItemLabel[0]){
  209. sortObjTempHtml=quOrderItemLabel.html();
  210. }
  211. /*sortObjTempHtml="";
  212. if(lastLabelHtml!=""){
  213. sortObjTempHtml="<label class='quOrderItemLabel'>"+$(this).find("label:last-child").html()+"</label>";
  214. } */
  215. //console.debug($(ui.helper).css("zIndex")+$(ui.helper).css("position"));
  216. },
  217. receive:function(event, ui){//当一个已连接的sortable对象接收到另一个sortable对象的元素后触发此事件。
  218. //判断如果是从右边新移入的,但当前td中已经有了,就交换到右边去
  219. var uiSenderClass=ui.sender.attr("class");
  220. ui.sender.empty();
  221. /* if(uiSenderClass.indexOf("quCoItemUlLi")<0){
  222. ui.sender.append(sortObjTempHtml);
  223. } */
  224. if(uiSenderClass.indexOf("quCoItemUlLi")<0){
  225. if(sortObjTempHtml!=""){
  226. ui.sender.append("<label class='quOrderItemLabel'>"+sortObjTempHtml+"</label>");
  227. }
  228. }else{
  229. if(sortObjTempHtml!=""){
  230. ui.sender.append("<label class='editAble quCoOptionEdit'>"+sortObjTempHtml+"</label>");
  231. }
  232. }
  233. $(this).empty();
  234. ui.item.clone().appendTo($(this));
  235. var quCoOptionEdit=$(this).find(".quCoOptionEdit");
  236. if(quCoOptionEdit[0]){
  237. quCoOptionEdit.removeClass();
  238. quCoOptionEdit.addClass("quOrderItemLabel");
  239. }
  240. $(".quOrderByTable td").css({"background":""});
  241. //更新排序ID quCoItem quOrderByTableTr
  242. //bindQuOrderBySorts();
  243. var quColItem = $(".li_surveyQuItemBody .quCoItem");
  244. $.each(quColItem,function(){
  245. var quOrderyByTrs=$(this).find(".quOrderByTableTr");
  246. $.each(quOrderyByTrs,function(i){
  247. var quOrderItemHidInput=$(this).find(".quOrderItemHidInput");
  248. quOrderItemHidInput.val(i+1);
  249. });
  250. });
  251. /*var quOrderyByTrs=$(".quCoItem .quOrderByTableTr");
  252. $.each(quOrderyByTrs,function(i){
  253. var quOrderItemHidInput=$(this).find(".quOrderItemHidInput");
  254. quOrderItemHidInput.val(i+1);
  255. });*/
  256. },
  257. start: function(event, ui) {
  258. $(".quOrderByTable td").css({"background":""});
  259. $(this).css({"background":"#FAEDC0"});
  260. },
  261. drag: function(event, ui) {
  262. $(".quOrderByTable td").css({"background":""});
  263. $(this).css({"background":"#FAEDC0"});
  264. },
  265. stop: function(event,ui){
  266. $(".quOrderByTable td").css({"background":""});
  267. },
  268. out: function(event,ui){
  269. //$(".quOrderByTable td").css({"background":""});
  270. },
  271. activate: function( event, ui ) {
  272. //$(".quOrderByTable td").css({"background":""});
  273. //$(this).css({"background":"#FAEDC0"});
  274. }
  275. });
  276. });
  277. }
  278. /**初始化表单骓证配置**/
  279. function validateForms(){
  280. var result=true;
  281. var surveyQuItemBodys=$(".li_surveyQuItemBody");
  282. var firstError=null;
  283. $.each(surveyQuItemBodys,function(){
  284. var quItemBody=$(this);
  285. if(!validateCheck(quItemBody,true)){
  286. //定位到这题
  287. if(firstError==null){
  288. firstError=quItemBody;
  289. }
  290. result=false;
  291. }
  292. });
  293. if(firstError!=null){
  294. $(window).scrollTop(firstError.offset().top);
  295. }
  296. //
  297. if($("#jcaptchaImgBody").is(":visible")){
  298. var jcaptchaInput = $("input[name='jcaptchaInput']").val();
  299. if(jcaptchaInput===""){
  300. $("#jcaptchaImgBody .errorItem").show();
  301. result = false;
  302. }else{
  303. $("#jcaptchaImgBody .errorItem").hide();
  304. }
  305. }
  306. return result;
  307. }
  308. function checkoutData(checkType, value) {
  309. var validateStatus = true;
  310. if(value.length<=0){
  311. validateStatus = false;
  312. }
  313. if (checkType == "NO") {
  314. if(value.length<=0){
  315. validateStatus = false;
  316. }
  317. }else if (checkType == "EMAIL") {
  318. 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])?)*$/;
  319. if (!__email.test(value)) {
  320. validateStatus = false;
  321. }
  322. } else if (checkType == "UNSTRCN") {
  323. var __cn = /^[\u3220-\uFA29]+$/;
  324. if (__cn.test(value)) {
  325. validateStatus = false;
  326. }
  327. } else if (checkType == "STRCN") {
  328. var __cn = /^[\u3220-\uFA29]+$/;
  329. if (!__cn.test(value)) {
  330. validateStatus = false;
  331. }
  332. } else if (checkType == "NUM") {
  333. // "number[/[+|-][int|integer|float|double|money|{位数正则}.{位数正则}]]"
  334. // var __regex = /^\d+(\.\d+)?$/;
  335. var __regex = /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/;
  336. if (!__regex.test(value)) {
  337. validateStatus = false;
  338. }
  339. } else if (checkType == "DIGITS") {
  340. var __regex = /^\d+$/;
  341. if (!__regex.test(value)) {
  342. validateStatus = false;
  343. }
  344. } else if (checkType == "TELENUM") {
  345. var tel = /^\d{3,4}-{1}\d{7,9}-?\d{1,6}$/;
  346. var tel400800 = /^(400{1}-?[0-9]{3}-?[0-9]{4})|(800{1}-?[0-9]{3}-?[0-9]{4})$/
  347. if (!(tel.test(value) || tel400800.test(value))) {
  348. validateStatus = false;
  349. }
  350. } else if (checkType == "PHONENUM") {
  351. var length = value.length;
  352. var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
  353. if (!(length == 11 && mobile.test(value))) {
  354. validateStatus = false;
  355. }
  356. } else if (checkType == "TELE_PHONE_NUM") {
  357. var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
  358. var tel = /^\d{3,4}-{1}\d{7,9}-?\d{1,6}$/;
  359. var tel400800 = /^(400{1}-?[0-9]{3}-?[0-9]{4})|(800{1}-?[0-9]{3}-?[0-9]{4})$/
  360. if (!(tel400800.test(value) || tel.test(value) || mobile.test(value))) {
  361. validateStatus = false;
  362. }
  363. } else if (checkType == "DATE") {
  364. //日期的正则表达式
  365. /*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
  366. var regExp1 = new RegExp(reg1);
  367. var reg2 = /^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;//12:00:00
  368. var regExp2 = new RegExp(reg2);
  369. 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
  370. var regExp3 = new RegExp(reg3);
  371. if(!(regExp1.test(value) || regExp3.test(value))){
  372. // alert("日期格式不正确,正确格式为:2014-01-01");
  373. errorType = "DATE";
  374. validateStatus = false;
  375. }*/
  376. if (/Invalid|NaN/.test(new Date(value).toString())) {
  377. validateStatus = false;
  378. }
  379. } else if (checkType == "IDENTCODE") {
  380. var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(value);
  381. if (!(check && (value.length == 15 || value.length == 18))) {
  382. validateStatus = false;
  383. }
  384. } else if (checkType == "ZIPCODE") {
  385. var tel = /^[0-9]{6}$/;
  386. if (!tel.test(value)) {
  387. validateStatus = false;
  388. }
  389. } else if (checkType == "URL"){
  390. 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;
  391. if (!strRegex.test(value)) {
  392. validateStatus = false;
  393. }
  394. }
  395. return validateStatus;
  396. }
  397. /******************************处理题目逻辑设置 **************************************/
  398. //处理题目逻辑设置
  399. /** 答题触发事件 **/
  400. //初始化 处理默认逻辑跳转为显示,则先隐藏元素
  401. var quLogics=$("#dwSurveyQuContent .quLogicItem");
  402. $.each(quLogics,function(){
  403. var loginItem=$(this);
  404. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  405. var skQuId=loginItem.find(".skQuId").val();
  406. var logicId=loginItem.find(".logicId").val();
  407. var logicType=loginItem.find(".logicType").val();
  408. if(logicType==="2"){
  409. //逻辑类型为“显示”2 则初始化为隐藏
  410. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  411. hidQuItemBody.hide();
  412. hidQuItemBody.addClass("hidFor"+logicId);
  413. hidQuItemBody.find(".answerTag").attr("disabled",true);
  414. }
  415. });
  416. /** 单选与多选条件触发 自定义单选多选效果 操作结束后得调用逻辑判断 **/
  417. $(".dwQuOptionItemContent").click(function(){
  418. var thObj=$(this);
  419. var quItemBody=thObj.parents(".li_surveyQuItemBody");
  420. var quType=quItemBody.find(".quType").val();
  421. var dwQuInputLabel=thObj.find(".dwQuInputLabel");
  422. if("RADIO"===quType){
  423. //单选题
  424. quItemBody.find(".dwQuInputLabel").removeClass("checked");
  425. quItemBody.find("input[type='radio']").prop("checked",false);
  426. dwQuInputLabel.addClass("checked");
  427. thObj.find("input[type='radio']").prop("checked",true);
  428. runlogic(thObj.find("input[type='radio']"));
  429. }else if("CHECKBOX"===quType){
  430. //多选题
  431. //quItemBody.find(".dwQuInputLabel").removeClass("checked");
  432. var quInputLabelClass=dwQuInputLabel.attr("class");
  433. if(quInputLabelClass.indexOf("checked")>0){
  434. dwQuInputLabel.removeClass("checked");
  435. thObj.find("input[type='checkbox']").prop("checked",false);
  436. }else{
  437. dwQuInputLabel.addClass("checked");
  438. thObj.find("input[type='checkbox']").prop("checked",true);
  439. }
  440. var checkeds = quItemBody.find("input[type='checkbox']:checked");
  441. var paramInt02 = quItemBody.find(".paramInt02").val();
  442. if(paramInt02>0){
  443. if(checkeds[0]&&checkeds.size()>paramInt02){
  444. dwQuInputLabel.removeClass("checked");
  445. thObj.find("input[type='checkbox']").prop("checked",false);
  446. alert("最多只支持选择"+paramInt02+"项内容!");
  447. return false;
  448. }
  449. }
  450. runlogic(thObj.find("input[type='checkbox']"));
  451. }
  452. answerProgressbar(thObj);
  453. validateCheck(quItemBody,false);
  454. });
  455. $(".dwQuOptionItemNote").click(function(){
  456. return false;
  457. });
  458. //填空题
  459. $(".fillblankInput,.dwMFillblankInput").blur(function(){
  460. //$(this).css("borderColor","#D6D6FF");
  461. var thVal=$(this).val();
  462. runlogic($(this));
  463. answerProgressbar($(this));
  464. if(!$(this).hasClass("Wdate") || thVal!=""){
  465. validateCheck($(this).parents(".li_surveyQuItemBody"),true);
  466. }
  467. });
  468. $(".radioSelect").change(function(){
  469. var thVal = $(this).val();
  470. var thName = $(this).attr("name");
  471. var quCoItemUlLi = $(this).parents("li.quCoItemUlLi");
  472. var quItemInputCase= quCoItemUlLi.find(".quItemInputCase[itemid='"+thVal+"']");
  473. var isNote = quItemInputCase.find(".isNote").val();
  474. if(isNote=="1"){
  475. quCoItemUlLi.find(".dwQuOptionItemNote").hide();
  476. var dwQuOptionItemNote = quCoItemUlLi.find(".dwQuOptionItemNote[name='text_"+thName+"_"+thVal+"']");
  477. dwQuOptionItemNote.show();
  478. }else{
  479. quCoItemUlLi.find(".dwQuOptionItemNote").hide();
  480. }
  481. var thObj = $(this);
  482. var quItemBody = $(this).parents(".li_surveyQuItemBody");
  483. runlogic(thObj);
  484. answerProgressbar(thObj);
  485. validateCheck(quItemBody,false);
  486. return false;
  487. });
  488. //只要触发事件
  489. function runlogic(thFormElementObj){
  490. //thFormElementObj 当前关联的form表单元素
  491. var quItemBody=thFormElementObj.parents(".li_surveyQuItemBody");
  492. var quLogicItems=quItemBody.find(".quLogicItem");
  493. if(quLogicItems[0]){
  494. var quInputCase=quItemBody.find(".quInputCase");
  495. var quId=quInputCase.find(".quId").val();
  496. var quType=quInputCase.find(".quType").val();
  497. //$("input[name='qu_"+quType+"_"+quId+"']").change(function(){});
  498. if(quType==="RADIO" || quType==="CHECKBOX" ){
  499. //判断是否选中
  500. var quLgoicItem=null;
  501. //var thVal=thFormElementObj.val();
  502. var quOptionItems=null;
  503. quOptionItems=quItemBody.find(".dwQuOptionItemContent");
  504. if(quType==="RADIO"){
  505. if(quItemBody.find("select")[0]){
  506. quOptionItems=quItemBody.find("select option");
  507. }
  508. }
  509. $.each(quLogicItems,function(){
  510. var loginItem=$(this);
  511. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  512. var skQuId=loginItem.find(".skQuId").val();
  513. var logicId=loginItem.find(".logicId").val();
  514. var logicType=loginItem.find(".logicType").val();
  515. var isbreak=false;
  516. $.each(quOptionItems,function(){
  517. var quCoItem=$(this);
  518. var quInput=null;
  519. var logicStatus=false;
  520. var curQuItemId=null;
  521. if(quType==="RADIO"){
  522. if(quItemBody.find("select")[0]){
  523. curQuItemId=$(this).val();
  524. logicStatus=quItemBody.find("select").val()==curQuItemId;
  525. }else{
  526. quInput=quCoItem.find("input[type='radio']");
  527. logicStatus=quInput.prop("checked");
  528. curQuItemId=quInput.val();
  529. }
  530. }else if(quType==="CHECKBOX"){
  531. quInput=quCoItem.find("input[type='checkbox']");
  532. logicStatus=quInput.prop("checked");
  533. curQuItemId=quInput.val();
  534. }
  535. if(curQuItemId===cgQuItemId){
  536. if(logicType==="1"){
  537. if(logicStatus){
  538. skQuestion(quItemBody.next(),skQuId,logicId,function(){
  539. //重新编题号
  540. });
  541. if(skQuId==="1" || skQuId==="2" ){
  542. isbreak=true;
  543. }
  544. }else{
  545. /*
  546. //$(".hidFor"+loginId).slideDown("slow");
  547. $(".hidFor"+loginId).show();
  548. //$(".hidFor"+loginId).fadeIn();
  549. $(".hidFor"+loginId).removeClass("hidFor"+loginId);
  550. $(".hidFor"+loginId).find(".answerTag").attr("disabled",false);
  551. */
  552. var hidQuItemBodys=$(".hidFor"+logicId);
  553. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  554. var curPageNo = quItemBody.find(".pageNo").val();
  555. $.each(hidQuItemBodys,function(){
  556. var thQuItemBodyClass=$(this).attr("class");
  557. var thPageNo = $(this).find(".pageNo").val();
  558. if(thQuItemBodyClass.indexOf("hidFor")<0 && thPageNo==curPageNo){
  559. $(this).show();
  560. //$(".hidFor"+loginId).fadeIn();
  561. $(this).find(".answerTag").attr("disabled",false);
  562. }
  563. });
  564. }
  565. }else{
  566. if(logicStatus){
  567. var hidQuItemBodys = $(".hidFor" + logicId);
  568. $(".hidFor" + logicId).removeClass("hidFor" + logicId);
  569. var curPageNo = quItemBody.find(".pageNo").val();
  570. $.each(hidQuItemBodys, function () {
  571. var hidQuItemBody = $(this);
  572. var hidQuId = $(this).find(".quId").val();
  573. if (quType == "CHECKBOX" || quType == "RADIO") {
  574. $.each(quLogicItems, function () {
  575. var thLoginItem = $(this);
  576. var thSkQuId = thLoginItem.find(".skQuId").val();
  577. var thLogicType = thLoginItem.find(".logicType").val();
  578. var thLogicId = thLoginItem.find(".logicId").val();
  579. var logicHidForClass = "hidFor" + thLogicId;
  580. // console.debug(logicHidForClass);
  581. if (thLogicType === "2" && thSkQuId === hidQuId) {
  582. hidQuItemBody.removeClass(logicHidForClass);
  583. }
  584. });
  585. }
  586. var thQuItemBodyClass = $(this).attr("class");
  587. var thPageNo = $(this).find(".pageNo").val();
  588. if (thQuItemBodyClass.indexOf("hidFor") < 0 && thPageNo == curPageNo) {
  589. $(this).show();
  590. $(this).find(".answerTag").attr("disabled", false);
  591. }
  592. });
  593. }else{
  594. /* 隐藏题
  595. */
  596. var isHide = true;
  597. if(quType=="CHECKBOX" || quType=="RADIO"){
  598. //先判断有没有逻辑已经触发了
  599. $.each(quLogicItems,function() {
  600. var thLoginItem = $(this);
  601. var thCgQuItemId=thLoginItem.find(".cgQuItemId").val();
  602. var thSkQuId = thLoginItem.find(".skQuId").val();
  603. var thLogicType = thLoginItem.find(".logicType").val();
  604. var thLogicId=thLoginItem.find(".logicId").val();
  605. if( thLogicType==="2" && thSkQuId === skQuId ){
  606. var thCgQuOptionItem=quItemBody.find(".dwQuOptionItemContent input[type='checkbox'][value='"+thCgQuItemId+"'],.dwQuOptionItemContent input[type='radio'][value='"+thCgQuItemId+"']");
  607. var thCgQuOptionStatus=thCgQuOptionItem.prop("checked");
  608. if(thCgQuOptionStatus){
  609. isHide = false;
  610. return false;
  611. }
  612. }
  613. });
  614. }
  615. if(isHide){
  616. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  617. hidQuItemBody.hide();
  618. hidQuItemBody.addClass("hidFor"+logicId);
  619. hidQuItemBody.find(".answerTag").attr("disabled",true);
  620. }
  621. }
  622. }
  623. return false;
  624. }
  625. });
  626. if(isbreak){
  627. return false;
  628. }
  629. });
  630. }else if(quType==="FILLBLANK"){
  631. //遍历每个逻辑设置
  632. var quOptionItems=quItemBody.find(".dwQuOptionItemContent");
  633. var thVal=thFormElementObj.val();
  634. $.each(quLogicItems,function(){
  635. var loginItem=$(this);
  636. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  637. var skQuId=loginItem.find(".skQuId").val();
  638. var logicId=loginItem.find(".logicId").val();
  639. var logicType=loginItem.find(".logicType").val();
  640. if(logicType==="1"){
  641. //跳转
  642. if(thVal!=""){
  643. //逻辑选项被选中状态,激活状态
  644. skQuestion(quItemBody.next(),skQuId,logicId,function(){
  645. //重新编题号
  646. });
  647. if(skQuId==="1" || skQuId==="2" ){
  648. isbreak=true;
  649. }
  650. }else{
  651. //逻辑选项未被选中状态,未激活
  652. //$(".hidFor"+loginId).slideDown("slow");
  653. var hidQuItemBodys=$(".hidFor"+logicId);
  654. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  655. var curPageNo = quItemBody.find(".pageNo").val();
  656. $.each(hidQuItemBodys,function(){
  657. var thQuItemBodyClass=$(this).attr("class");
  658. var thPageNo = $(this).find(".pageNo").val();
  659. if(thQuItemBodyClass.indexOf("hidFor")<0 && thPageNo==curPageNo){
  660. $(this).show();
  661. //$(".hidFor"+loginId).fadeIn();
  662. //回答标记与逻辑设置没有关系
  663. $(this).find(".answerTag").attr("disabled",false);
  664. }
  665. });
  666. }
  667. }else{
  668. //显示
  669. //逻辑类型为“显示” quType=1
  670. if(thVal!=""){
  671. //逻辑选项被选中状态,激活状态 显示题
  672. var hidQuItemBodys=$(".hidFor"+logicId);
  673. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  674. var curPageNo = quItemBody.find(".pageNo").val();
  675. $.each(hidQuItemBodys,function(){
  676. var thQuItemBodyClass=$(this).attr("class");
  677. var thPageNo = $(this).find(".pageNo").val();
  678. if(thQuItemBodyClass.indexOf("hidFor")<0 && thPageNo==curPageNo){
  679. $(this).show();
  680. $(this).find(".answerTag").attr("disabled",false);
  681. }
  682. });
  683. }else{
  684. /* 隐藏题
  685. */
  686. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  687. hidQuItemBody.hide();
  688. hidQuItemBody.addClass("hidFor"+logicId);
  689. hidQuItemBody.find(".answerTag").attr("disabled",true);
  690. }
  691. }
  692. });
  693. }
  694. resetQuNumLogic();
  695. }
  696. }
  697. function skQuestion(nextQuItemBody,skQuId,logicId,callback){
  698. if(nextQuItemBody[0]){
  699. //submitSurveyBtn
  700. var nextQuType=nextQuItemBody.find(".quType").val();
  701. var nextQuId=nextQuItemBody.find(".quId").val();
  702. var nextAnswerTag=nextQuItemBody.find(".answerTag");
  703. //如果是新一页则显示当前页所有题
  704. if(nextQuType=="PAGETAG"){
  705. if(validateForms()) {
  706. nextQuItemBody.find(".nextPage_a").click();
  707. }
  708. }
  709. //var quType=quItemBody.find(".quType").val();
  710. //var quId=quItemBody.find(".quId").val();
  711. //判断跳转类型
  712. if(skQuId==null){
  713. //对于逻辑选项未被选中的情况
  714. }else if(nextQuType=="PAGETAG"){
  715. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  716. });
  717. }else if(nextQuType!="submitSurveyBtn" && nextQuType!="PAGETAG" && (skQuId==="1" || skQuId==="2" || nextQuId!=skQuId) ){
  718. //对于逻辑项是被选定的情况下
  719. nextAnswerTag.attr("disabled",true);
  720. //nextQuItemBody.slideUp("slow");
  721. nextQuItemBody.hide();
  722. //nextQuItemBody.fadeOut();
  723. nextQuItemBody.addClass("hidFor"+logicId);
  724. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  725. });
  726. }
  727. /*
  728. else if(nextQuItemBody.is(":hidden")){
  729. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  730. });
  731. }else if(nextQuType!="submitSurveyBtn" && nextQuType!="PAGETAG" && (skQuId==="1" || skQuId==="2" || nextQuId!=skQuId) ){
  732. //对于逻辑项是被选定的情况下
  733. nextAnswerTag.attr("disabled",true);
  734. //nextQuItemBody.slideUp("slow");
  735. nextQuItemBody.hide();
  736. //nextQuItemBody.fadeOut();
  737. nextQuItemBody.addClass("hidFor"+logicId);
  738. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  739. });
  740. }*/
  741. }else{
  742. callback();
  743. }
  744. }
  745. // resetQuNum();
  746. function resetQuNum(){
  747. var quCoNums=$(".quCoNum");
  748. $.each(quCoNums,function(i,item){
  749. $(this).html((i+1)+"、");
  750. });
  751. }
  752. resetQuNumLogic();
  753. function resetQuNumLogic(){
  754. var surveyQuItemBodys = $(".li_surveyQuItemBody");
  755. var quIndex = 1;
  756. $.each(surveyQuItemBodys,function(i,item){
  757. var thClass = $(this).attr("class");
  758. var quCoNum = $(this).find(".quCoNum");
  759. // console.debug(thClass+":"+thClass.indexOf("hidFor"));
  760. if(thClass.indexOf("hidFor")<0 && quCoNum[0]){
  761. quCoNum.html((quIndex++)+"、");
  762. }
  763. });
  764. }
  765. /*
  766. $("input").unbind("click");
  767. $("input").click(function(){
  768. var quItemBody=$(this).parents(".li_surveyQuItemBody ");
  769. var quType=quItemBody.find(".quType").val();
  770. if(quType=="RADIO"){
  771. quItemBody.find(".answerTag").val(1);
  772. }
  773. var totalQuSize=$(".answerTag:enabled").size();
  774. var answerTag1=$(".answerTag[value='1']:enabled");
  775. var answerQuSize=0;
  776. if(answerTag1[0]){
  777. answerQuSize=answerTag1.size();
  778. }
  779. var newValue = parseInt(answerQuSize/totalQuSize*100);
  780. $("#resultProgressRoot .progress-label").text(newValue+"%");
  781. $("#resultProgress").progressbar("option", "value", newValue);
  782. });
  783. */
  784. $("#mobileTdId").click(function(){
  785. $(this).next().slideToggle();
  786. return false;
  787. });
  788. bindDateEvent();
  789. }
  790. function validateCheck(quItemBody,isSubForm){
  791. if(quItemBody.is(":visible")){
  792. var quId=quItemBody.find(".quId").val();
  793. var quType=quItemBody.find(".quType").val();
  794. var isRequired=quItemBody.find(".isRequired").val();
  795. var validateStatus=false;
  796. var checkType = "";
  797. if(isRequired==="0"){
  798. validateStatus = true;
  799. return true;
  800. }
  801. if(quType==="RADIO"){
  802. var hv = quItemBody.find(".hv").val();
  803. if(hv=="4" && quType ==="RADIO"){
  804. var radioSelectVal = quItemBody.find(".radioSelect").val();
  805. if(radioSelectVal!="" && radioSelectVal!="0"){
  806. var radioSelect = quItemBody.find(".radioSelect");
  807. var radioSelectVal = radioSelect.val();
  808. var radioSelectName = radioSelect.attr("name");
  809. var quCoItemUlLi = radioSelect.parents("li.quCoItemUlLi");
  810. var quItemInputCase= quCoItemUlLi.find(".quItemInputCase[itemid='"+radioSelectVal+"']");
  811. var isNote = quItemInputCase.find(".isNote").val();
  812. if(isNote=="1"){
  813. var curText = quCoItemUlLi.find(".dwQuOptionItemNote[name='text_"+radioSelectName+"_"+radioSelectVal+"']");
  814. var curTextValue = curText.val();
  815. var checkType = quItemInputCase.find(".checkType").val();
  816. var isRequiredFill = quItemInputCase.find(".isRequiredFill").val();
  817. if(isRequiredFill=="1" || curTextValue!="") {
  818. validateStatus = checkoutData(checkType, curText);
  819. }else{
  820. validateStatus = true;
  821. }
  822. }else{
  823. validateStatus = true;
  824. }
  825. }
  826. }else{
  827. validateStatus=quItemBody.find("input[type='radio']:checked")[0];
  828. if(validateStatus){
  829. var curRadio = quItemBody.find("input[type='radio']:checked");
  830. var curText = curRadio.parent().find("input[type='text']:visible");
  831. if(curText[0]){
  832. var curTextValue = curText.val();
  833. checkType = curRadio.parent().find(".checkType").val();
  834. var isRequiredFill = curRadio.parent().find(".isRequiredFill").val();
  835. if(isRequiredFill!="1"){
  836. validateStatus = checkoutData(checkType, curTextValue);
  837. }
  838. }
  839. }
  840. }
  841. }else if(quType==="CHECKBOX"){
  842. validateStatus=quItemBody.find("input[type='checkbox']:checked")[0];
  843. var paramInt01 = quItemBody.find(".paramInt01").val();
  844. if(paramInt01>0){
  845. var checkeds = quItemBody.find("input[type='checkbox']:checked");
  846. if(checkeds[0]&&checkeds.size()<paramInt01){
  847. quItemBody.find(".quCoItem").append("<div class=\"errorItem\"><label class=\"error\">请保证最少选择"+paramInt01+"项内容</label></div>");
  848. validateStatus = false;
  849. }else{
  850. quItemBody.find(".quCoItem .errorItem").remove();
  851. }
  852. }
  853. if(validateStatus){
  854. // isNote checkType isRequiredFill
  855. var curCheckboxs = quItemBody.find("input[type='checkbox']:checked");
  856. $.each(curCheckboxs,function(){
  857. var curText = $(this).parent().find("input[type='text']:visible");
  858. if(curText[0]){
  859. var curTextValue = curText.val();
  860. checkType = $(this).parent().find(".checkType").val();
  861. var isRequiredFill = $(this).parent().find(".isRequiredFill").val();
  862. if(isRequiredFill!="1"){
  863. validateStatus = checkoutData(checkType, curTextValue);
  864. }
  865. }
  866. if(!validateStatus){
  867. return false;
  868. }
  869. });
  870. }
  871. }else if(quType==="FILLBLANK"){
  872. var value = quItemBody.find(".fillblankInput").val();
  873. validateStatus = value!="";
  874. checkType = quItemBody.find(".checkType").val();
  875. if(validateStatus){
  876. validateStatus = checkoutData(checkType, value);
  877. }
  878. }else if(quType==="ORDERQU"){
  879. //quItemBody.find(".quOrderByLeftUl label");
  880. validateStatus=!quItemBody.find(".quOrderByLeftUl label")[0];
  881. }else if(quType==="SCORE"){
  882. validateStatus=true;
  883. var quScoreOptionTrs=quItemBody.find(".quScoreOptionTr");
  884. $.each(quScoreOptionTrs,function(){
  885. var scoreNumInput=$(this).find(".scoreNumInput");
  886. if(scoreNumInput.val()===""){
  887. validateStatus=false;
  888. return false;
  889. }
  890. });
  891. }else if(quType==="MULTIFILLBLANK"){
  892. validateStatus=true;
  893. var quScoreOptionTrs=quItemBody.find(".mFillblankTableTr");
  894. var paramInt01 = 0;
  895. if(quItemBody.find(".paramInt01")[0]){
  896. paramInt01 = quItemBody.find(".paramInt01").val();
  897. }
  898. var anNum = 0;
  899. $.each(quScoreOptionTrs,function() {
  900. var scoreNumInput = $(this).find(".dwMFillblankInput");
  901. if (scoreNumInput.val() != "") {
  902. anNum++;
  903. }
  904. })
  905. if(validateStatus){
  906. if(paramInt01!=0){
  907. if(anNum<paramInt01){
  908. validateStatus=false;
  909. }
  910. }else{
  911. if(anNum<quScoreOptionTrs.size()){
  912. validateStatus=false;
  913. }
  914. }
  915. }
  916. }else if(quType === "UPLOADFILE"){
  917. validateStatus=quItemBody.find(".fileuploadSaveValue")[0];
  918. }else if(quType==="submitSurveyBtn" || quType==="PARAGRAPH" || quType==="PAGETAG"){
  919. return true;
  920. }
  921. }else{
  922. validateStatus=true;
  923. }
  924. if(validateStatus){
  925. quItemBody.find(".errorItem").remove();
  926. }else{
  927. // isSubForm && !quItemBody.find(".errorItem")[0]
  928. if(isSubForm){
  929. if(quItemBody.find(".errorItem")[0]){
  930. quItemBody.find(".errorItem").remove();
  931. }
  932. var errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请检查题目答案,为必答项!</label></div>";
  933. if(checkType=="EMAIL"){
  934. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入Email,为必答项!</label></div>";
  935. }else if(checkType=="UNSTRCN"){
  936. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入非中文字符,为必答项!</label></div>";
  937. }else if(checkType=="STRCN"){
  938. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入中文字符,为必答项!</label></div>";
  939. }else if(checkType=="NUM"){
  940. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入数字,为必答项!</label></div>";
  941. }else if(checkType == "DIGITS"){
  942. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入整数,为必答项!</label></div>";
  943. }else if(checkType == "TELENUM"){
  944. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入电话,为必答项!</label></div>";
  945. }else if(checkType == "PHONENUM"){
  946. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入手机,为必答项!</label></div>";
  947. }else if(checkType == "TELE_PHONE_NUM"){
  948. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入电话或手机,为必答项!</label></div>";
  949. }else if(checkType == "DATE"){
  950. //2014-01-01 12:00:00
  951. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入如日期时间,为必答项!</label></div>";
  952. }else if(checkType == "IDENTCODE"){
  953. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入身份证号,为必答项!</label></div>";
  954. }else if(checkType == "ZIPCODE"){
  955. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入邮编,为必答项!</label></div>";
  956. }else if(checkType == "URL"){
  957. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入URL,为必答项!</label></div>";
  958. }
  959. quItemBody.find(".quCoItem").append(errorHtml);
  960. }
  961. }
  962. return validateStatus;
  963. }
  964. /**********************处理答题进度条************************/
  965. //$("#resultProgress").progressbar({value: bfbFloat});
  966. function answerProgressbar(thObj){
  967. var quItemBody=thObj.parents(".li_surveyQuItemBody ");
  968. var quType=quItemBody.find(".quType").val();
  969. if(quType==="RADIO"){
  970. //quItemBody.find(".answerTag").val(1);
  971. var checks=quItemBody.find("input[type='radio']:checked");
  972. if(checks[0]){
  973. quItemBody.find(".answerTag").val(1);
  974. }else{
  975. quItemBody.find(".answerTag").val(0);
  976. }
  977. }else if(quType=="CHECKBOX"){
  978. var checks=quItemBody.find("input[type='checkbox']:checked");
  979. if(checks[0]){
  980. quItemBody.find(".answerTag").val(1);
  981. }else{
  982. quItemBody.find(".answerTag").val(0);
  983. }
  984. }else if(quType==="FILLBLANK"){
  985. var thVal=thObj.val();
  986. if(thVal!=""){
  987. quItemBody.find(".answerTag").val(1);
  988. }else{
  989. quItemBody.find(".answerTag").val(0);
  990. }
  991. }else if(quType==="ORDERQU"){
  992. //quOrderByLeftUl
  993. var orderByLabels=quItemBody.find(".quOrderByLeftUl label");
  994. if(!orderByLabels[0]){
  995. quItemBody.find(".answerTag").val(1);
  996. }else{
  997. quItemBody.find(".answerTag").val(0);
  998. }
  999. }else if( quType==="SCORE" ){
  1000. //<input type="hidden" class="answerTag" value="0" >
  1001. var quScoreOptionTr=thObj.parents(".quScoreOptionTr");
  1002. var scoreNumInput=quScoreOptionTr.find(".scoreNumInput");
  1003. if(scoreNumInput.val()!=""){
  1004. quScoreOptionTr.find(".answerTag").val(1);
  1005. }else{
  1006. quScoreOptionTr.find(".answerTag").val(0);
  1007. }
  1008. }else if(quType==="MULTIFILLBLANK"){
  1009. var mFillblankTableTr=thObj.parents(".mFillblankTableTr");
  1010. if(thObj.val()!=""){
  1011. mFillblankTableTr.find(".answerTag").val(1);
  1012. }else{
  1013. mFillblankTableTr.find(".answerTag").val(0);
  1014. }
  1015. }
  1016. var totalQuSize=$("#dwSurveyQuContent .answerTag:enabled").size();
  1017. var answerTag1=$("#dwSurveyQuContent .answerTag[value='1']:enabled");
  1018. var answerQuSize=0;
  1019. if(answerTag1[0]){
  1020. answerQuSize=answerTag1.size();
  1021. }
  1022. var newValue = parseInt(answerQuSize/totalQuSize*100);
  1023. $("#resultProgressRoot .progress-label").text("完成度:"+newValue+"%");
  1024. $("#resultProgress").progressbar("option", "value", newValue);
  1025. }