ans-p.js 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184
  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. $('#submitUserInfo').click(function () {
  309. let userName = $('#userName').val()
  310. let userPhone = $('#userPhone').val()
  311. if (!userName) {
  312. $('#userName').next().find('label').text('姓名为必填项!')
  313. $('#userName').next().show(100)
  314. } else {
  315. $('#userName').next().hide(100)
  316. }
  317. if (!userPhone) {
  318. $('#userPhone').next().find('label').text('手机号码为必填项!')
  319. $('#userPhone').next().show(100)
  320. } else {
  321. $('#userPhone').next().hide(100)
  322. }
  323. if (userName && userPhone) {
  324. $('#sUserName').val(userName)
  325. $('#sUserPhone').val(userPhone)
  326. $('#wrap2').slideUp(1000)
  327. }
  328. })
  329. function checkoutData(checkType, value) {
  330. var validateStatus = true;
  331. if(value.length<=0){
  332. validateStatus = false;
  333. }
  334. if (checkType == "NO") {
  335. if(value.length<=0){
  336. validateStatus = false;
  337. }
  338. }else if (checkType == "EMAIL") {
  339. 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])?)*$/;
  340. if (!__email.test(value)) {
  341. validateStatus = false;
  342. }
  343. } else if (checkType == "UNSTRCN") {
  344. var __cn = /^[\u3220-\uFA29]+$/;
  345. if (__cn.test(value)) {
  346. validateStatus = false;
  347. }
  348. } else if (checkType == "STRCN") {
  349. var __cn = /^[\u3220-\uFA29]+$/;
  350. if (!__cn.test(value)) {
  351. validateStatus = false;
  352. }
  353. } else if (checkType == "NUM") {
  354. // "number[/[+|-][int|integer|float|double|money|{位数正则}.{位数正则}]]"
  355. // var __regex = /^\d+(\.\d+)?$/;
  356. var __regex = /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/;
  357. if (!__regex.test(value)) {
  358. validateStatus = false;
  359. }
  360. } else if (checkType == "DIGITS") {
  361. var __regex = /^\d+$/;
  362. if (!__regex.test(value)) {
  363. validateStatus = false;
  364. }
  365. } else if (checkType == "TELENUM") {
  366. var tel = /^\d{3,4}-{1}\d{7,9}-?\d{1,6}$/;
  367. var tel400800 = /^(400{1}-?[0-9]{3}-?[0-9]{4})|(800{1}-?[0-9]{3}-?[0-9]{4})$/
  368. if (!(tel.test(value) || tel400800.test(value))) {
  369. validateStatus = false;
  370. }
  371. } else if (checkType == "PHONENUM") {
  372. var length = value.length;
  373. var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
  374. if (!(length == 11 && mobile.test(value))) {
  375. validateStatus = false;
  376. }
  377. } else if (checkType == "TELE_PHONE_NUM") {
  378. var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
  379. var tel = /^\d{3,4}-{1}\d{7,9}-?\d{1,6}$/;
  380. var tel400800 = /^(400{1}-?[0-9]{3}-?[0-9]{4})|(800{1}-?[0-9]{3}-?[0-9]{4})$/
  381. if (!(tel400800.test(value) || tel.test(value) || mobile.test(value))) {
  382. validateStatus = false;
  383. }
  384. } else if (checkType == "DATE") {
  385. //日期的正则表达式
  386. /*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
  387. var regExp1 = new RegExp(reg1);
  388. var reg2 = /^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;//12:00:00
  389. var regExp2 = new RegExp(reg2);
  390. 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
  391. var regExp3 = new RegExp(reg3);
  392. if(!(regExp1.test(value) || regExp3.test(value))){
  393. // alert("日期格式不正确,正确格式为:2014-01-01");
  394. errorType = "DATE";
  395. validateStatus = false;
  396. }*/
  397. if (/Invalid|NaN/.test(new Date(value).toString())) {
  398. validateStatus = false;
  399. }
  400. } else if (checkType == "IDENTCODE") {
  401. var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(value);
  402. if (!(check && (value.length == 15 || value.length == 18))) {
  403. validateStatus = false;
  404. }
  405. } else if (checkType == "ZIPCODE") {
  406. var tel = /^[0-9]{6}$/;
  407. if (!tel.test(value)) {
  408. validateStatus = false;
  409. }
  410. } else if (checkType == "URL"){
  411. 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;
  412. if (!strRegex.test(value)) {
  413. validateStatus = false;
  414. }
  415. }
  416. return validateStatus;
  417. }
  418. /******************************处理题目逻辑设置 **************************************/
  419. //处理题目逻辑设置
  420. /** 答题触发事件 **/
  421. //初始化 处理默认逻辑跳转为显示,则先隐藏元素
  422. var quLogics=$("#dwSurveyQuContent .quLogicItem");
  423. $.each(quLogics,function(){
  424. var loginItem=$(this);
  425. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  426. var skQuId=loginItem.find(".skQuId").val();
  427. var logicId=loginItem.find(".logicId").val();
  428. var logicType=loginItem.find(".logicType").val();
  429. if(logicType==="2"){
  430. //逻辑类型为“显示”2 则初始化为隐藏
  431. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  432. hidQuItemBody.hide();
  433. hidQuItemBody.addClass("hidFor"+logicId);
  434. hidQuItemBody.find(".answerTag").attr("disabled",true);
  435. }
  436. });
  437. /** 单选与多选条件触发 自定义单选多选效果 操作结束后得调用逻辑判断 **/
  438. $(".dwQuOptionItemContent").click(function(){
  439. var thObj=$(this);
  440. var quItemBody=thObj.parents(".li_surveyQuItemBody");
  441. var quType=quItemBody.find(".quType").val();
  442. var dwQuInputLabel=thObj.find(".dwQuInputLabel");
  443. if("RADIO"===quType){
  444. //单选题
  445. quItemBody.find(".dwQuInputLabel").removeClass("checked");
  446. quItemBody.find("input[type='radio']").prop("checked",false);
  447. dwQuInputLabel.addClass("checked");
  448. thObj.find("input[type='radio']").prop("checked",true);
  449. runlogic(thObj.find("input[type='radio']"));
  450. }else if("CHECKBOX"===quType){
  451. //多选题
  452. //quItemBody.find(".dwQuInputLabel").removeClass("checked");
  453. var quInputLabelClass=dwQuInputLabel.attr("class");
  454. if(quInputLabelClass.indexOf("checked")>0){
  455. dwQuInputLabel.removeClass("checked");
  456. thObj.find("input[type='checkbox']").prop("checked",false);
  457. }else{
  458. dwQuInputLabel.addClass("checked");
  459. thObj.find("input[type='checkbox']").prop("checked",true);
  460. }
  461. var checkeds = quItemBody.find("input[type='checkbox']:checked");
  462. var paramInt02 = quItemBody.find(".paramInt02").val();
  463. if(paramInt02>0){
  464. if(checkeds[0]&&checkeds.size()>paramInt02){
  465. dwQuInputLabel.removeClass("checked");
  466. thObj.find("input[type='checkbox']").prop("checked",false);
  467. alert("最多只支持选择"+paramInt02+"项内容!");
  468. return false;
  469. }
  470. }
  471. runlogic(thObj.find("input[type='checkbox']"));
  472. }
  473. answerProgressbar(thObj);
  474. validateCheck(quItemBody,false);
  475. });
  476. $(".dwQuOptionItemNote").click(function(){
  477. return false;
  478. });
  479. //填空题
  480. $(".fillblankInput,.dwMFillblankInput").blur(function(){
  481. //$(this).css("borderColor","#D6D6FF");
  482. var thVal=$(this).val();
  483. runlogic($(this));
  484. answerProgressbar($(this));
  485. if(!$(this).hasClass("Wdate") || thVal!=""){
  486. validateCheck($(this).parents(".li_surveyQuItemBody"),true);
  487. }
  488. });
  489. $(".radioSelect").change(function(){
  490. var thVal = $(this).val();
  491. var thName = $(this).attr("name");
  492. var quCoItemUlLi = $(this).parents("li.quCoItemUlLi");
  493. var quItemInputCase= quCoItemUlLi.find(".quItemInputCase[itemid='"+thVal+"']");
  494. var isNote = quItemInputCase.find(".isNote").val();
  495. if(isNote=="1"){
  496. quCoItemUlLi.find(".dwQuOptionItemNote").hide();
  497. var dwQuOptionItemNote = quCoItemUlLi.find(".dwQuOptionItemNote[name='text_"+thName+"_"+thVal+"']");
  498. dwQuOptionItemNote.show();
  499. }else{
  500. quCoItemUlLi.find(".dwQuOptionItemNote").hide();
  501. }
  502. var thObj = $(this);
  503. var quItemBody = $(this).parents(".li_surveyQuItemBody");
  504. runlogic(thObj);
  505. answerProgressbar(thObj);
  506. validateCheck(quItemBody,false);
  507. return false;
  508. });
  509. //只要触发事件
  510. function runlogic(thFormElementObj){
  511. //thFormElementObj 当前关联的form表单元素
  512. var quItemBody=thFormElementObj.parents(".li_surveyQuItemBody");
  513. var quLogicItems=quItemBody.find(".quLogicItem");
  514. if(quLogicItems[0]){
  515. var quInputCase=quItemBody.find(".quInputCase");
  516. var quId=quInputCase.find(".quId").val();
  517. var quType=quInputCase.find(".quType").val();
  518. //$("input[name='qu_"+quType+"_"+quId+"']").change(function(){});
  519. if(quType==="RADIO" || quType==="CHECKBOX" ){
  520. //判断是否选中
  521. var quLgoicItem=null;
  522. //var thVal=thFormElementObj.val();
  523. var quOptionItems=null;
  524. quOptionItems=quItemBody.find(".dwQuOptionItemContent");
  525. if(quType==="RADIO"){
  526. if(quItemBody.find("select")[0]){
  527. quOptionItems=quItemBody.find("select option");
  528. }
  529. }
  530. $.each(quLogicItems,function(){
  531. var loginItem=$(this);
  532. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  533. var skQuId=loginItem.find(".skQuId").val();
  534. var logicId=loginItem.find(".logicId").val();
  535. var logicType=loginItem.find(".logicType").val();
  536. var isbreak=false;
  537. $.each(quOptionItems,function(){
  538. var quCoItem=$(this);
  539. var quInput=null;
  540. var logicStatus=false;
  541. var curQuItemId=null;
  542. if(quType==="RADIO"){
  543. if(quItemBody.find("select")[0]){
  544. curQuItemId=$(this).val();
  545. logicStatus=quItemBody.find("select").val()==curQuItemId;
  546. }else{
  547. quInput=quCoItem.find("input[type='radio']");
  548. logicStatus=quInput.prop("checked");
  549. curQuItemId=quInput.val();
  550. }
  551. }else if(quType==="CHECKBOX"){
  552. quInput=quCoItem.find("input[type='checkbox']");
  553. logicStatus=quInput.prop("checked");
  554. curQuItemId=quInput.val();
  555. }
  556. if(curQuItemId===cgQuItemId){
  557. if(logicType==="1"){
  558. if(logicStatus){
  559. skQuestion(quItemBody.next(),skQuId,logicId,function(){
  560. //重新编题号
  561. });
  562. if(skQuId==="1" || skQuId==="2" ){
  563. isbreak=true;
  564. }
  565. }else{
  566. /*
  567. //$(".hidFor"+loginId).slideDown("slow");
  568. $(".hidFor"+loginId).show();
  569. //$(".hidFor"+loginId).fadeIn();
  570. $(".hidFor"+loginId).removeClass("hidFor"+loginId);
  571. $(".hidFor"+loginId).find(".answerTag").attr("disabled",false);
  572. */
  573. var hidQuItemBodys=$(".hidFor"+logicId);
  574. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  575. var curPageNo = quItemBody.find(".pageNo").val();
  576. $.each(hidQuItemBodys,function(){
  577. var thQuItemBodyClass=$(this).attr("class");
  578. var thPageNo = $(this).find(".pageNo").val();
  579. if(thQuItemBodyClass.indexOf("hidFor")<0 && thPageNo==curPageNo){
  580. $(this).show();
  581. //$(".hidFor"+loginId).fadeIn();
  582. $(this).find(".answerTag").attr("disabled",false);
  583. }
  584. });
  585. }
  586. }else{
  587. if(logicStatus){
  588. var hidQuItemBodys = $(".hidFor" + logicId);
  589. $(".hidFor" + logicId).removeClass("hidFor" + logicId);
  590. var curPageNo = quItemBody.find(".pageNo").val();
  591. $.each(hidQuItemBodys, function () {
  592. var hidQuItemBody = $(this);
  593. var hidQuId = $(this).find(".quId").val();
  594. if (quType == "CHECKBOX" || quType == "RADIO") {
  595. $.each(quLogicItems, function () {
  596. var thLoginItem = $(this);
  597. var thSkQuId = thLoginItem.find(".skQuId").val();
  598. var thLogicType = thLoginItem.find(".logicType").val();
  599. var thLogicId = thLoginItem.find(".logicId").val();
  600. var logicHidForClass = "hidFor" + thLogicId;
  601. // console.debug(logicHidForClass);
  602. if (thLogicType === "2" && thSkQuId === hidQuId) {
  603. hidQuItemBody.removeClass(logicHidForClass);
  604. }
  605. });
  606. }
  607. var thQuItemBodyClass = $(this).attr("class");
  608. var thPageNo = $(this).find(".pageNo").val();
  609. if (thQuItemBodyClass.indexOf("hidFor") < 0 && thPageNo == curPageNo) {
  610. $(this).show();
  611. $(this).find(".answerTag").attr("disabled", false);
  612. }
  613. });
  614. }else{
  615. /* 隐藏题
  616. */
  617. var isHide = true;
  618. if(quType=="CHECKBOX" || quType=="RADIO"){
  619. //先判断有没有逻辑已经触发了
  620. $.each(quLogicItems,function() {
  621. var thLoginItem = $(this);
  622. var thCgQuItemId=thLoginItem.find(".cgQuItemId").val();
  623. var thSkQuId = thLoginItem.find(".skQuId").val();
  624. var thLogicType = thLoginItem.find(".logicType").val();
  625. var thLogicId=thLoginItem.find(".logicId").val();
  626. if( thLogicType==="2" && thSkQuId === skQuId ){
  627. var thCgQuOptionItem=quItemBody.find(".dwQuOptionItemContent input[type='checkbox'][value='"+thCgQuItemId+"'],.dwQuOptionItemContent input[type='radio'][value='"+thCgQuItemId+"']");
  628. var thCgQuOptionStatus=thCgQuOptionItem.prop("checked");
  629. if(thCgQuOptionStatus){
  630. isHide = false;
  631. return false;
  632. }
  633. }
  634. });
  635. }
  636. if(isHide){
  637. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  638. hidQuItemBody.hide();
  639. hidQuItemBody.addClass("hidFor"+logicId);
  640. hidQuItemBody.find(".answerTag").attr("disabled",true);
  641. }
  642. }
  643. }
  644. return false;
  645. }
  646. });
  647. if(isbreak){
  648. return false;
  649. }
  650. });
  651. }else if(quType==="FILLBLANK"){
  652. //遍历每个逻辑设置
  653. var quOptionItems=quItemBody.find(".dwQuOptionItemContent");
  654. var thVal=thFormElementObj.val();
  655. $.each(quLogicItems,function(){
  656. var loginItem=$(this);
  657. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  658. var skQuId=loginItem.find(".skQuId").val();
  659. var logicId=loginItem.find(".logicId").val();
  660. var logicType=loginItem.find(".logicType").val();
  661. if(logicType==="1"){
  662. //跳转
  663. if(thVal!=""){
  664. //逻辑选项被选中状态,激活状态
  665. skQuestion(quItemBody.next(),skQuId,logicId,function(){
  666. //重新编题号
  667. });
  668. if(skQuId==="1" || skQuId==="2" ){
  669. isbreak=true;
  670. }
  671. }else{
  672. //逻辑选项未被选中状态,未激活
  673. //$(".hidFor"+loginId).slideDown("slow");
  674. var hidQuItemBodys=$(".hidFor"+logicId);
  675. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  676. var curPageNo = quItemBody.find(".pageNo").val();
  677. $.each(hidQuItemBodys,function(){
  678. var thQuItemBodyClass=$(this).attr("class");
  679. var thPageNo = $(this).find(".pageNo").val();
  680. if(thQuItemBodyClass.indexOf("hidFor")<0 && thPageNo==curPageNo){
  681. $(this).show();
  682. //$(".hidFor"+loginId).fadeIn();
  683. //回答标记与逻辑设置没有关系
  684. $(this).find(".answerTag").attr("disabled",false);
  685. }
  686. });
  687. }
  688. }else{
  689. //显示
  690. //逻辑类型为“显示” quType=1
  691. if(thVal!=""){
  692. //逻辑选项被选中状态,激活状态 显示题
  693. var hidQuItemBodys=$(".hidFor"+logicId);
  694. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  695. var curPageNo = quItemBody.find(".pageNo").val();
  696. $.each(hidQuItemBodys,function(){
  697. var thQuItemBodyClass=$(this).attr("class");
  698. var thPageNo = $(this).find(".pageNo").val();
  699. if(thQuItemBodyClass.indexOf("hidFor")<0 && thPageNo==curPageNo){
  700. $(this).show();
  701. $(this).find(".answerTag").attr("disabled",false);
  702. }
  703. });
  704. }else{
  705. /* 隐藏题
  706. */
  707. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  708. hidQuItemBody.hide();
  709. hidQuItemBody.addClass("hidFor"+logicId);
  710. hidQuItemBody.find(".answerTag").attr("disabled",true);
  711. }
  712. }
  713. });
  714. }
  715. resetQuNumLogic();
  716. }
  717. }
  718. function skQuestion(nextQuItemBody,skQuId,logicId,callback){
  719. if(nextQuItemBody[0]){
  720. //submitSurveyBtn
  721. var nextQuType=nextQuItemBody.find(".quType").val();
  722. var nextQuId=nextQuItemBody.find(".quId").val();
  723. var nextAnswerTag=nextQuItemBody.find(".answerTag");
  724. //如果是新一页则显示当前页所有题
  725. if(nextQuType=="PAGETAG"){
  726. if(validateForms()) {
  727. nextQuItemBody.find(".nextPage_a").click();
  728. }
  729. }
  730. //var quType=quItemBody.find(".quType").val();
  731. //var quId=quItemBody.find(".quId").val();
  732. //判断跳转类型
  733. if(skQuId==null){
  734. //对于逻辑选项未被选中的情况
  735. }else if(nextQuType=="PAGETAG"){
  736. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  737. });
  738. }else if(nextQuType!="submitSurveyBtn" && nextQuType!="PAGETAG" && (skQuId==="1" || skQuId==="2" || nextQuId!=skQuId) ){
  739. //对于逻辑项是被选定的情况下
  740. nextAnswerTag.attr("disabled",true);
  741. //nextQuItemBody.slideUp("slow");
  742. nextQuItemBody.hide();
  743. //nextQuItemBody.fadeOut();
  744. nextQuItemBody.addClass("hidFor"+logicId);
  745. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  746. });
  747. }
  748. /*
  749. else if(nextQuItemBody.is(":hidden")){
  750. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  751. });
  752. }else if(nextQuType!="submitSurveyBtn" && nextQuType!="PAGETAG" && (skQuId==="1" || skQuId==="2" || nextQuId!=skQuId) ){
  753. //对于逻辑项是被选定的情况下
  754. nextAnswerTag.attr("disabled",true);
  755. //nextQuItemBody.slideUp("slow");
  756. nextQuItemBody.hide();
  757. //nextQuItemBody.fadeOut();
  758. nextQuItemBody.addClass("hidFor"+logicId);
  759. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  760. });
  761. }*/
  762. }else{
  763. callback();
  764. }
  765. }
  766. // resetQuNum();
  767. function resetQuNum(){
  768. var quCoNums=$(".quCoNum");
  769. $.each(quCoNums,function(i,item){
  770. $(this).html((i+1)+"、");
  771. });
  772. }
  773. resetQuNumLogic();
  774. function resetQuNumLogic(){
  775. var surveyQuItemBodys = $(".li_surveyQuItemBody");
  776. var quIndex = 1;
  777. $.each(surveyQuItemBodys,function(i,item){
  778. var thClass = $(this).attr("class");
  779. var quCoNum = $(this).find(".quCoNum");
  780. // console.debug(thClass+":"+thClass.indexOf("hidFor"));
  781. if(thClass.indexOf("hidFor")<0 && quCoNum[0]){
  782. quCoNum.html((quIndex++)+"、");
  783. }
  784. });
  785. }
  786. /*
  787. $("input").unbind("click");
  788. $("input").click(function(){
  789. var quItemBody=$(this).parents(".li_surveyQuItemBody ");
  790. var quType=quItemBody.find(".quType").val();
  791. if(quType=="RADIO"){
  792. quItemBody.find(".answerTag").val(1);
  793. }
  794. var totalQuSize=$(".answerTag:enabled").size();
  795. var answerTag1=$(".answerTag[value='1']:enabled");
  796. var answerQuSize=0;
  797. if(answerTag1[0]){
  798. answerQuSize=answerTag1.size();
  799. }
  800. var newValue = parseInt(answerQuSize/totalQuSize*100);
  801. $("#resultProgressRoot .progress-label").text(newValue+"%");
  802. $("#resultProgress").progressbar("option", "value", newValue);
  803. });
  804. */
  805. $("#mobileTdId").click(function(){
  806. $(this).next().slideToggle();
  807. return false;
  808. });
  809. bindDateEvent();
  810. }
  811. function validateCheck(quItemBody,isSubForm){
  812. if(quItemBody.is(":visible")){
  813. var quId=quItemBody.find(".quId").val();
  814. var quType=quItemBody.find(".quType").val();
  815. var isRequired=quItemBody.find(".isRequired").val();
  816. var validateStatus=false;
  817. var checkType = "";
  818. if(isRequired==="0"){
  819. validateStatus = true;
  820. return true;
  821. }
  822. if(quType==="RADIO"){
  823. var hv = quItemBody.find(".hv").val();
  824. if(hv=="4" && quType ==="RADIO"){
  825. var radioSelectVal = quItemBody.find(".radioSelect").val();
  826. if(radioSelectVal!="" && radioSelectVal!="0"){
  827. var radioSelect = quItemBody.find(".radioSelect");
  828. var radioSelectVal = radioSelect.val();
  829. var radioSelectName = radioSelect.attr("name");
  830. var quCoItemUlLi = radioSelect.parents("li.quCoItemUlLi");
  831. var quItemInputCase= quCoItemUlLi.find(".quItemInputCase[itemid='"+radioSelectVal+"']");
  832. var isNote = quItemInputCase.find(".isNote").val();
  833. if(isNote=="1"){
  834. var curText = quCoItemUlLi.find(".dwQuOptionItemNote[name='text_"+radioSelectName+"_"+radioSelectVal+"']");
  835. var curTextValue = curText.val();
  836. var checkType = quItemInputCase.find(".checkType").val();
  837. var isRequiredFill = quItemInputCase.find(".isRequiredFill").val();
  838. if(isRequiredFill=="1" || curTextValue!="") {
  839. validateStatus = checkoutData(checkType, curText);
  840. }else{
  841. validateStatus = true;
  842. }
  843. }else{
  844. validateStatus = true;
  845. }
  846. }
  847. }else{
  848. validateStatus=quItemBody.find("input[type='radio']:checked")[0];
  849. if(validateStatus){
  850. var curRadio = quItemBody.find("input[type='radio']:checked");
  851. var curText = curRadio.parent().find("input[type='text']:visible");
  852. if(curText[0]){
  853. var curTextValue = curText.val();
  854. checkType = curRadio.parent().find(".checkType").val();
  855. var isRequiredFill = curRadio.parent().find(".isRequiredFill").val();
  856. if(isRequiredFill!="1"){
  857. validateStatus = checkoutData(checkType, curTextValue);
  858. }
  859. }
  860. }
  861. }
  862. }else if(quType==="CHECKBOX"){
  863. validateStatus=quItemBody.find("input[type='checkbox']:checked")[0];
  864. var paramInt01 = quItemBody.find(".paramInt01").val();
  865. if(paramInt01>0){
  866. var checkeds = quItemBody.find("input[type='checkbox']:checked");
  867. if(checkeds[0]&&checkeds.size()<paramInt01){
  868. quItemBody.find(".quCoItem").append("<div class=\"errorItem\"><label class=\"error\">请保证最少选择"+paramInt01+"项内容</label></div>");
  869. validateStatus = false;
  870. }else{
  871. quItemBody.find(".quCoItem .errorItem").remove();
  872. }
  873. }
  874. if(validateStatus){
  875. // isNote checkType isRequiredFill
  876. var curCheckboxs = quItemBody.find("input[type='checkbox']:checked");
  877. $.each(curCheckboxs,function(){
  878. var curText = $(this).parent().find("input[type='text']:visible");
  879. if(curText[0]){
  880. var curTextValue = curText.val();
  881. checkType = $(this).parent().find(".checkType").val();
  882. var isRequiredFill = $(this).parent().find(".isRequiredFill").val();
  883. if(isRequiredFill!="1"){
  884. validateStatus = checkoutData(checkType, curTextValue);
  885. }
  886. }
  887. if(!validateStatus){
  888. return false;
  889. }
  890. });
  891. }
  892. }else if(quType==="FILLBLANK"){
  893. var value = quItemBody.find(".fillblankInput").val();
  894. validateStatus = value!="";
  895. checkType = quItemBody.find(".checkType").val();
  896. if(validateStatus){
  897. validateStatus = checkoutData(checkType, value);
  898. }
  899. }else if(quType==="ORDERQU"){
  900. //quItemBody.find(".quOrderByLeftUl label");
  901. validateStatus=!quItemBody.find(".quOrderByLeftUl label")[0];
  902. }else if(quType==="SCORE"){
  903. validateStatus=true;
  904. var quScoreOptionTrs=quItemBody.find(".quScoreOptionTr");
  905. $.each(quScoreOptionTrs,function(){
  906. var scoreNumInput=$(this).find(".scoreNumInput");
  907. if(scoreNumInput.val()===""){
  908. validateStatus=false;
  909. return false;
  910. }
  911. });
  912. }else if(quType==="MULTIFILLBLANK"){
  913. validateStatus=true;
  914. var quScoreOptionTrs=quItemBody.find(".mFillblankTableTr");
  915. var paramInt01 = 0;
  916. if(quItemBody.find(".paramInt01")[0]){
  917. paramInt01 = quItemBody.find(".paramInt01").val();
  918. }
  919. var anNum = 0;
  920. $.each(quScoreOptionTrs,function() {
  921. var scoreNumInput = $(this).find(".dwMFillblankInput");
  922. if (scoreNumInput.val() != "") {
  923. anNum++;
  924. }
  925. })
  926. if(validateStatus){
  927. if(paramInt01!=0){
  928. if(anNum<paramInt01){
  929. validateStatus=false;
  930. }
  931. }else{
  932. if(anNum<quScoreOptionTrs.size()){
  933. validateStatus=false;
  934. }
  935. }
  936. }
  937. }else if(quType === "UPLOADFILE"){
  938. validateStatus=quItemBody.find(".fileuploadSaveValue")[0];
  939. }else if(quType==="submitSurveyBtn" || quType==="PARAGRAPH" || quType==="PAGETAG"){
  940. return true;
  941. }
  942. }else{
  943. validateStatus=true;
  944. }
  945. if(validateStatus){
  946. quItemBody.find(".errorItem").remove();
  947. }else{
  948. // isSubForm && !quItemBody.find(".errorItem")[0]
  949. if(isSubForm){
  950. if(quItemBody.find(".errorItem")[0]){
  951. quItemBody.find(".errorItem").remove();
  952. }
  953. var errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请检查题目答案,为必答项!</label></div>";
  954. if(checkType=="EMAIL"){
  955. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入Email,为必答项!</label></div>";
  956. }else if(checkType=="UNSTRCN"){
  957. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入非中文字符,为必答项!</label></div>";
  958. }else if(checkType=="STRCN"){
  959. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入中文字符,为必答项!</label></div>";
  960. }else if(checkType=="NUM"){
  961. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入数字,为必答项!</label></div>";
  962. }else if(checkType == "DIGITS"){
  963. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入整数,为必答项!</label></div>";
  964. }else if(checkType == "TELENUM"){
  965. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入电话,为必答项!</label></div>";
  966. }else if(checkType == "PHONENUM"){
  967. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入手机,为必答项!</label></div>";
  968. }else if(checkType == "TELE_PHONE_NUM"){
  969. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入电话或手机,为必答项!</label></div>";
  970. }else if(checkType == "DATE"){
  971. //2014-01-01 12:00:00
  972. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入如日期时间,为必答项!</label></div>";
  973. }else if(checkType == "IDENTCODE"){
  974. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入身份证号,为必答项!</label></div>";
  975. }else if(checkType == "ZIPCODE"){
  976. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入邮编,为必答项!</label></div>";
  977. }else if(checkType == "URL"){
  978. errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请输入URL,为必答项!</label></div>";
  979. }
  980. quItemBody.find(".quCoItem").append(errorHtml);
  981. }
  982. }
  983. return validateStatus;
  984. }
  985. /**********************处理答题进度条************************/
  986. //$("#resultProgress").progressbar({value: bfbFloat});
  987. function answerProgressbar(thObj){
  988. var quItemBody=thObj.parents(".li_surveyQuItemBody ");
  989. var quType=quItemBody.find(".quType").val();
  990. if(quType==="RADIO"){
  991. //quItemBody.find(".answerTag").val(1);
  992. var checks=quItemBody.find("input[type='radio']:checked");
  993. if(checks[0]){
  994. quItemBody.find(".answerTag").val(1);
  995. }else{
  996. quItemBody.find(".answerTag").val(0);
  997. }
  998. }else if(quType=="CHECKBOX"){
  999. var checks=quItemBody.find("input[type='checkbox']:checked");
  1000. if(checks[0]){
  1001. quItemBody.find(".answerTag").val(1);
  1002. }else{
  1003. quItemBody.find(".answerTag").val(0);
  1004. }
  1005. }else if(quType==="FILLBLANK"){
  1006. var thVal=thObj.val();
  1007. if(thVal!=""){
  1008. quItemBody.find(".answerTag").val(1);
  1009. }else{
  1010. quItemBody.find(".answerTag").val(0);
  1011. }
  1012. }else if(quType==="ORDERQU"){
  1013. //quOrderByLeftUl
  1014. var orderByLabels=quItemBody.find(".quOrderByLeftUl label");
  1015. if(!orderByLabels[0]){
  1016. quItemBody.find(".answerTag").val(1);
  1017. }else{
  1018. quItemBody.find(".answerTag").val(0);
  1019. }
  1020. }else if( quType==="SCORE" ){
  1021. //<input type="hidden" class="answerTag" value="0" >
  1022. var quScoreOptionTr=thObj.parents(".quScoreOptionTr");
  1023. var scoreNumInput=quScoreOptionTr.find(".scoreNumInput");
  1024. if(scoreNumInput.val()!=""){
  1025. quScoreOptionTr.find(".answerTag").val(1);
  1026. }else{
  1027. quScoreOptionTr.find(".answerTag").val(0);
  1028. }
  1029. }else if(quType==="MULTIFILLBLANK"){
  1030. var mFillblankTableTr=thObj.parents(".mFillblankTableTr");
  1031. if(thObj.val()!=""){
  1032. mFillblankTableTr.find(".answerTag").val(1);
  1033. }else{
  1034. mFillblankTableTr.find(".answerTag").val(0);
  1035. }
  1036. }
  1037. var totalQuSize=$("#dwSurveyQuContent .answerTag:enabled").size();
  1038. var answerTag1=$("#dwSurveyQuContent .answerTag[value='1']:enabled");
  1039. var answerQuSize=0;
  1040. if(answerTag1[0]){
  1041. answerQuSize=answerTag1.size();
  1042. }
  1043. var newValue = parseInt(answerQuSize/totalQuSize*100);
  1044. $("#resultProgressRoot .progress-label").text("完成度:"+newValue+"%");
  1045. $("#resultProgress").progressbar("option", "value", newValue);
  1046. }