answer-survey-mobile.jsp 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@include file="/common/taglibs.jsp" %>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <meta name="viewport" content="width=device-width, initial-scale=1" />
  9. <title>${survey.surveyName }</title>
  10. <link href="${ctx }/css/sur-mobile.css" rel="stylesheet" type="text/css" />
  11. <link rel="stylesheet" href="${ctx }/js/plugs/jquery.mobile-1.4.5/jquery.mobile-1.4.5.min.css">
  12. <script type="text/javascript" src="${ctx }/js/plugs/jquery-ui-1.10.3.custom/js/jquery-1.10.1.js"></script>
  13. <script src="${ctx }/js/plugs/jquery.mobile-1.4.5/jquery.mobile-1.4.5.min.js"></script>
  14. <link href="${ctx }/js/plugs/font-awesome-4.2.0/css/font-awesome.css" rel="stylesheet">
  15. <link href="${ctx}/js/plugs/validate/jquery.validate.css" type="text/css" rel="stylesheet" />
  16. <script type="text/javascript">
  17. $(document).ready(function(){
  18. });
  19. </script>
  20. <style type="text/css">
  21. .ui-page {
  22. background:white;
  23. }
  24. .ui-header{
  25. background-color: #5693C0! important;
  26. text-shadow:0 1px 0 #3D586C! important;
  27. padding-bottom: 5px;
  28. }
  29. .ui-content{
  30. padding: 0px 1em;
  31. }
  32. .ui-footer{
  33. color: #3D586C! important;
  34. background: none! important;
  35. }
  36. .ui-header, .ui-footer{
  37. border: none! important;
  38. }
  39. .starRating{
  40. font-size: 26px;
  41. }
  42. .starRating .fa{
  43. cursor: pointer;
  44. }
  45. .starRating .fa-star{
  46. color: #3388CC;
  47. }
  48. .subbtn{
  49. opacity:1! important;
  50. color: white;
  51. }
  52. .quTitleNum{
  53. /* position: absolute; */
  54. }
  55. .quTitleText{
  56. /* text-indent: 2em; */
  57. }
  58. #dwSurveyNote{
  59. padding-top: 0px;
  60. }
  61. .m_quOrderByUi{
  62. margin: 5px 0 5px 0;
  63. padding: 0;
  64. border: 1px solid #d5d5d5;
  65. border-radius: 3px;
  66. }
  67. .m_quOrderByUi li{
  68. border-color: #fff;
  69. font-size: 16px;
  70. min-height: 41px;
  71. position: relative;
  72. padding-right: 45px!important;
  73. border-bottom: 1px solid #EBEBEB!important;
  74. }
  75. .m_orderby_num{
  76. position: absolute;
  77. right: 10px;
  78. top: 55%;
  79. margin-top: -15px;
  80. min-width: 26px;
  81. height: 26px;
  82. background: #85C8FF;
  83. color: #fff;
  84. text-align: center;
  85. line-height: 26px;
  86. border-radius: 15px;
  87. z-index: 100;
  88. display: none;
  89. }
  90. .m_orderby_sel{
  91. position: absolute;
  92. top: 0px;
  93. left: 0px;
  94. width: 100%;
  95. height: 100%;
  96. opacity: 0;
  97. font-size: 30px;
  98. z-index: 9999;
  99. background-color: rgb(248, 248, 248);
  100. border: 1px solid rgb(166, 166, 166);
  101. border-image-source: initial;
  102. border-image-slice: initial;
  103. border-image-width: initial;
  104. border-image-outset: initial;
  105. border-image-repeat: initial;
  106. display: inline-block;
  107. }
  108. </style>
  109. </head>
  110. <body>
  111. <form id="surveyForm" action="${ctx }/response!saveMobile.action" method="post" data-ajax="false">
  112. <input type="hidden" id="surveyId" name="surveyId" value="${survey.id }">
  113. <input type="hidden" name="form-from" value="mobile" >
  114. <div data-role="page" >
  115. <div data-role="header">
  116. <div id="dwSurveyTitle" class="noLogoImg" style="padding-top: 5px;">
  117. <!-- <i class="fa fa-star"></i> -->
  118. <div id="dwSurveyName" class="dwSvyName" style="color:rgb(244, 234, 195);">${survey.surveyName }</div>
  119. </div>
  120. <div id="dwSurveyNote">
  121. <div id="dwSurveyNoteEdit" style="color:white;font-weight: normal;line-height: 20px;">${survey.surveyDetail.surveyNote }</div>
  122. </div>
  123. </div>
  124. <div id="m-errorMsg"></div>
  125. <div data-role="content" >
  126. <div id="dwSurveyQuContent" style="">
  127. <div id="dwSurveyQuContentBg">
  128. <!-- <div style="border-top: 3px solid #81AB00;margin:0px auto;padding-bottom: 15px;"></div> -->
  129. <c:set var="pageNo" value="1"></c:set>
  130. <c:set var="isNextPage" value="0"></c:set>
  131. <ul id="dwSurveyQuContentAppUl">
  132. <!-- 题目内容 -->
  133. <c:forEach items="${survey.questions }" var="en" varStatus="i">
  134. <c:choose>
  135. <c:when test="${en.quType eq 'RADIO' }">
  136. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  137. <div class="surveyQuItemBody">
  138. <div class="initLine"></div>
  139. <div class="quInputCase" style="display: none;">
  140. <input type="hidden" class="quType" value="RADIO" >
  141. <input type="hidden" class="quId" value="${en.id }" >
  142. <input type="hidden" class="orderById" value="${en.orderById }"/>
  143. <input type="hidden" class="isRequired" value="${en.isRequired }">
  144. <input type="hidden" class="answerTag" value="0" >
  145. <div class="quLogicInputCase">
  146. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  147. <div class="quLogicItem quLogicItem_${logicSts.count }">
  148. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  149. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  150. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  151. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  152. </div>
  153. </c:forEach>
  154. </div>
  155. </div>
  156. <div class="surveyQuItem">
  157. <div class="surveyQuItemContent">
  158. <fieldset data-role="controlgroup" >
  159. <legend>
  160. <span class="quTitleNum">${i.count }、</span>
  161. <span class="quTitleText">${en.quTitle}</span>
  162. </legend>
  163. <c:forEach items="${en.quRadios }" var="item" >
  164. <div class="dwQuOptionItemContent">
  165. <label for="qu_${en.quType }_${en.id }_${item.id}">${item.optionName }</label>
  166. <input id="qu_${en.quType }_${en.id }_${item.id}" type="radio" name="qu_${en.quType }_${en.id }" value="${item.id }">
  167. <c:if test="${item.isNote eq 1 }" >
  168. <input type='text' class='inputSytle_1' style="width:200px;padding:5px;${item.isNote eq 1 ? '':'display: none;'}" name="text_qu_${en.quType }_${en.id }_${item.id }" />
  169. </c:if>
  170. </div>
  171. </c:forEach>
  172. </fieldset>
  173. </div>
  174. </div>
  175. </div>
  176. </li>
  177. </c:when>
  178. <c:when test="${en.quType eq 'CHECKBOX' }">
  179. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  180. <div class="surveyQuItemBody">
  181. <div class="initLine"></div>
  182. <div class="quInputCase" style="display: none;">
  183. <input type="hidden" class="quType" value="CHECKBOX">
  184. <input type="hidden" class="quId" value="${en.id }">
  185. <input type="hidden" class="orderById" value="${en.orderById }"/>
  186. <input type="hidden" class="isRequired" value="${en.isRequired }">
  187. <input type="hidden" class="answerTag" value="0" >
  188. <div class="quLogicInputCase">
  189. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  190. <div class="quLogicItem quLogicItem_${logicSts.count }">
  191. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  192. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  193. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  194. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  195. </div>
  196. </c:forEach>
  197. </div>
  198. <input type="hidden" name="qu_${en.quType }_${en.id }" value="tag_qu_${en.quType }_${en.id }_" />
  199. </div>
  200. <div class="surveyQuItem">
  201. <div class="surveyQuItemContent">
  202. <fieldset data-role="controlgroup" >
  203. <legend>
  204. <span class="quTitleNum">${i.count }、</span>
  205. <span class="quTitleText">${en.quTitle}</span>
  206. </legend>
  207. <c:forEach items="${en.quCheckboxs }" var="item">
  208. <div class="dwQuOptionItemContent">
  209. <label for="tag_qu_${en.quType }_${en.id }_${item.id }" >${item.optionName }</label>
  210. <input id="tag_qu_${en.quType }_${en.id }_${item.id }" type="checkbox" name="tag_qu_${en.quType }_${en.id }_${item.id }" value="${item.id }" >
  211. <c:if test="${item.isNote eq 1 }" >
  212. <input type='text' class='inputSytle_1' style="width:200px;padding:5px;" name="text_tag_qu_${en.quType }_${en.id }_${en.quCheckboxs[quOptionIndex].id }" />
  213. </c:if>
  214. </div>
  215. </c:forEach>
  216. </fieldset>
  217. </div>
  218. </div>
  219. </div>
  220. </li>
  221. </c:when>
  222. <c:when test="${en.quType eq 'FILLBLANK' }">
  223. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  224. <div class="surveyQuItemBody">
  225. <div class="initLine"></div>
  226. <div class="quInputCase" style="display: none;">
  227. <input type="hidden" class="quType" value="FILLBLANK">
  228. <input type="hidden" class="quId" value="${en.id }">
  229. <input type="hidden" class="orderById" value="${en.orderById }"/>
  230. <input type="hidden" class="isRequired" value="${en.isRequired }">
  231. <input type="hidden" class="answerTag" value="0" >
  232. <div class="quLogicInputCase">
  233. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  234. <div class="quLogicItem quLogicItem_${logicSts.count }">
  235. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  236. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  237. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  238. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  239. </div>
  240. </c:forEach>
  241. </div>
  242. </div>
  243. <div class="surveyQuItem">
  244. <div class="surveyQuItemContent" >
  245. <div style="margin: 0px 5px;">
  246. <label for="qu_${en.quType }_${en.id }">
  247. <span class="quTitleNum">${i.count }、</span>
  248. <span class="quTitleText">${en.quTitle}</span>
  249. </label>
  250. <%--<input id="qu_${en.quType }_${en.id }" type="text" name="qu_${en.quType }_${en.id }" class="fillblankInput" >--%>
  251. <c:choose>
  252. <c:when test="${en.answerInputRow > 1 }">
  253. <textarea name="qu_${en.quType }_${en.id }" rows="${en.answerInputRow }" class="inputSytle_2 fillblankInput" ></textarea>
  254. </c:when>
  255. <c:otherwise>
  256. <input type="text" name="qu_${en.quType }_${en.id }" class="inputSytle_1 fillblankInput" >
  257. </c:otherwise>
  258. </c:choose>
  259. </div>
  260. </div>
  261. </div>
  262. </div>
  263. </li>
  264. </c:when>
  265. <c:when test="${en.quType eq 'SCORE' }">
  266. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  267. <div class="surveyQuItemBody">
  268. <div class="initLine"></div>
  269. <div class="quInputCase" style="display: none;">
  270. <input type="hidden" class="quType" value="SCORE">
  271. <input type="hidden" class="quId" value="${en.id }">
  272. <input type="hidden" class="orderById" value="${en.orderById }"/>
  273. <input type="hidden" class="isRequired" value="${en.isRequired }">
  274. <div class="quLogicInputCase">
  275. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  276. <div class="quLogicItem quLogicItem_${logicSts.count }">
  277. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  278. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  279. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  280. <input type="hidden" class="geLe" value="${quLogicEn.geLe }"/>
  281. <input type="hidden" class="scoreNum" value="${quLogicEn.scoreNum }"/>
  282. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  283. </div>
  284. </c:forEach>
  285. </div>
  286. <input type="hidden" name="qu_${en.quType }_${en.id }" value="item_qu_${en.quType }_${en.id }_" />
  287. </div>
  288. <div class="surveyQuItem">
  289. <div class="surveyQuItemContent">
  290. <div class="quCoTitle">
  291. <legend>
  292. <span class="quTitleNum">${i.count }、</span>
  293. <span class="quTitleText">${en.quTitle}</span>
  294. </legend>
  295. </div>
  296. <div class="quCoItem">
  297. <c:forEach items="${en.quScores }" var="item">
  298. <div class="scoreRow quScoreOptionTr">
  299. <input class="dwScoreOptionId" value="${item.id }" disabled="disabled" type="hidden"/>
  300. <input type="hidden" class="answerTag" value="0" >
  301. <fieldset class="starRating" data-role="controlgroup" >
  302. <legend>${item.optionName }</legend>
  303. <c:forEach begin="1" end="${en.paramInt02 }" var="scoreNum"><i class="fa fa-star-o"></i></c:forEach>
  304. <%--<i class="fa fa-star-o"></i>
  305. <i class="fa fa-star-o"></i>
  306. <i class="fa fa-star-o"></i>
  307. <i class="fa fa-star-o"></i>
  308. <i class="fa fa-star-o"></i>--%>
  309. </fieldset>
  310. <input name="item_qu_${en.quType }_${en.id }_${item.id }" value="" type="hidden" class="scoreNumInput" >
  311. </div>
  312. </c:forEach>
  313. </div>
  314. </div>
  315. </div>
  316. </div>
  317. </li>
  318. </c:when>
  319. <c:when test="${en.quType eq 'ORDERQU' }">
  320. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  321. <div class="surveyQuItemBody">
  322. <div class="initLine"></div>
  323. <div class="quInputCase" style="display: none;">
  324. <input type="hidden" class="quType" value="ORDERQU">
  325. <input type="hidden" class="quId" value="${en.id }">
  326. <input type="hidden" class="orderById" value="${en.orderById }"/>
  327. <input type="hidden" class="isRequired" value="${en.isRequired }">
  328. <input type="hidden" class="answerTag" value="0" >
  329. <div class="quLogicInputCase">
  330. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  331. <div class="quLogicItem quLogicItem_${logicSts.count }">
  332. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  333. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  334. </div>
  335. </c:forEach>
  336. </div>
  337. <input type="hidden" name="qu_${en.quType }_${en.id }" value="item_qu_${en.quType }_${en.id }_" />
  338. </div>
  339. <div class="surveyQuItem">
  340. <div class="surveyQuItemContent">
  341. <fieldset data-role="controlgroup" >
  342. <legend>
  343. <span class="quTitleNum">${i.count }、</span>
  344. <span class="quTitleText">${en.quTitle}</span>
  345. </legend>
  346. <div class="ui-controlgroup-controls ">
  347. <c:forEach items="${en.quOrderbys }" var="item">
  348. <div class="ui-checkbox m_clickQuOrderItem">
  349. <label class="ui-btn ui-corner-all ui-btn-inherit itemOptionname" style="text-align: left;" >${item.optionName }</label>
  350. <div class="m_orderby_num">0</div>
  351. <div style="display: none;">
  352. <input name="item_qu_${en.quType }_${en.id }_${item.id }" value="0" type="hidden" class="quOrderItemHidInput" >
  353. </div>
  354. </div>
  355. </c:forEach>
  356. </div>
  357. </fieldset>
  358. </div>
  359. </div>
  360. <%-- <div class="surveyQuItem">
  361. <div class="surveyQuItemContent">
  362. <div class="quCoTitle">
  363. <legend>
  364. <span>${i.count }、</span>
  365. <span>${en.quTitle}</span>
  366. </legend>
  367. </div>
  368. <div class="quCoItem quOrderByCoItem">
  369. <div class="quOrderByLeft">
  370. <ul class="quOrderByLeftUl">
  371. <c:forEach items="${en.quOrderbys }" var="item">
  372. <li class="quCoItemUlLi">
  373. <label class="editAble quCoOptionEdit" style="padding: 5px;background: #EDEDED;">${item.optionName }
  374. <input name="item_qu_${en.quType }_${en.id }_${item.id }" value="1" type="hidden" class="quOrderItemHidInput" >
  375. </label>
  376. </li>
  377. </c:forEach>
  378. </ul>
  379. </div>
  380. <div style="clear: both;"></div>
  381. </div>
  382. </div>
  383. </div>
  384. --%>
  385. </div>
  386. </li>
  387. </c:when>
  388. <%-- 分页题 --%>
  389. <c:when test="${en.quType eq 'PAGETAG' }">
  390. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  391. <div class="surveyQuItemBody">
  392. <div class="initLine"></div>
  393. <div class="quInputCase" style="display: none;">
  394. <input type="hidden" class="quType" value="PAGETAG">
  395. <input type="hidden" class="quId" value="${en.id }">
  396. <input type="hidden" class="orderById" value="${en.orderById }"/>
  397. <input type="hidden" class="isRequired" value="${en.isRequired }">
  398. <div class="quLogicInputCase">
  399. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  400. <div class="quLogicItem quLogicItem_${logicSts.count }">
  401. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  402. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  403. </div>
  404. </c:forEach>
  405. </div>
  406. </div>
  407. <div class="surveyQuItem">
  408. <div class="pageBorderTop nohover" ></div>
  409. <div class="surveyQuItemContent" style="padding-top: 12px;height: 30px;min-height: 30px;">
  410. <!-- <div class="pageQuContent">下一页(1/2)</div> -->
  411. <a href="#" class="sbtn24 sbtn24_0 nextPage_a" >下一页</a>&nbsp;&nbsp;
  412. <c:if test="${pageNo > 1 }">
  413. <a href="#" class="sbtn24 sbtn24_1 prevPage_a">上一页</a>
  414. <input type="hidden" name="prevPageNo" value="${pageNo-1 }">
  415. </c:if>
  416. <c:set var="pageNo" value="${pageNo+1 }"></c:set>
  417. <input type="hidden" name="nextPageNo" value="${pageNo }">
  418. </div>
  419. </div>
  420. </div>
  421. </li>
  422. </c:when>
  423. <%--段落说明 --%>
  424. <c:when test="${en.quType eq 'PARAGRAPH' }">
  425. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  426. <div class="surveyQuItemBody">
  427. <div class="initLine"></div>
  428. <div class="quInputCase" style="display: none;">
  429. <input type="hidden" class="quType" value="PARAGRAPH">
  430. <input type="hidden" class="quId" value="${en.id }">
  431. <input type="hidden" class="orderById" value="${en.orderById }"/>
  432. <input type="hidden" class="isRequired" value="${en.isRequired }">
  433. <div class="quLogicInputCase">
  434. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  435. <div class="quLogicItem quLogicItem_${logicSts.count }">
  436. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  437. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  438. </div>
  439. </c:forEach>
  440. </div>
  441. </div>
  442. <div class="surveyQuItem">
  443. <div class="surveyQuItemContent" style="min-height: 20px;">
  444. <div class="quCoTitle">
  445. <%-- <div class="quCoNum quTitleNum">${i.count }、</div> --%>
  446. <div class="quCoTitleEdit" >${en.quTitle}</div>
  447. </div>
  448. <hr/>
  449. </div>
  450. </div>
  451. </div>
  452. </li>
  453. </c:when>
  454. <%--多项填空题 --%>
  455. <c:when test="${en.quType eq 'MULTIFILLBLANK' }">
  456. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  457. <div class="surveyQuItemBody">
  458. <div class="initLine"></div>
  459. <div class="quInputCase" style="display: none;">
  460. <input type="hidden" class="quType" value="MULTIFILLBLANK">
  461. <input type="hidden" class="quId" value="${en.id }">
  462. <input type="hidden" class="orderById" value="${en.orderById }"/>
  463. <input type="hidden" class="isRequired" value="${en.isRequired }">
  464. <div class="quLogicInputCase">
  465. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  466. <div class="quLogicItem quLogicItem_${logicSts.count }">
  467. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  468. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  469. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  470. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  471. </div>
  472. </c:forEach>
  473. </div>
  474. <input type="hidden" name="qu_${en.quType }_${en.id }" value="text_qu_${en.quType }_${en.id }_" />
  475. </div>
  476. <div class="surveyQuItem">
  477. <div class="surveyQuItemContent">
  478. <div class="quCoTitle">
  479. <legend>
  480. <span class="quTitleNum">${i.count }、</span>
  481. <span class="quTitleText">${en.quTitle}</span>
  482. </legend>
  483. </div>
  484. <div class="quCoItem">
  485. <c:forEach items="${en.quMultiFillblanks }" var="item">
  486. <div class="mFillblankTableTr">
  487. <label for="text_qu_${en.quType }_${en.id }_${item.id }">${item.optionName }</label>
  488. <input id="text_qu_${en.quType }_${en.id }_${item.id }" name="text_qu_${en.quType }_${en.id }_${item.id }" type="text" class="dwMFillblankInput" >
  489. <input class="dwMFillblankOptionId" value="${item.id }" disabled="disabled" type="hidden"/>
  490. <input type="hidden" class="answerTag" value="0" >
  491. </div>
  492. </c:forEach>
  493. </div>
  494. </div>
  495. </div>
  496. </div>
  497. </li>
  498. </c:when>
  499. <%-- 矩阵单选题 --%>
  500. <c:when test="${en.quType eq 'CHENRADIO' }">
  501. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  502. <div class="surveyQuItemBody">
  503. <div class="initLine"></div>
  504. <div class="quInputCase" style="display: none;">
  505. <input type="hidden" class="quType" value="CHENRADIO">
  506. <input type="hidden" class="quId" value="${en.id }">
  507. <input type="hidden" class="orderById" value="${en.orderById }"/>
  508. <input type="hidden" class="isRequired" value="${en.isRequired }">
  509. <div class="quLogicInputCase">
  510. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  511. <div class="quLogicItem quLogicItem_${logicSts.count }">
  512. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  513. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  514. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  515. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  516. </div>
  517. </c:forEach>
  518. </div>
  519. <input type="hidden" name="qu_${en.quType }_${en.id }" value="item_qu_${en.quType }_${en.id }_" />
  520. </div>
  521. <div class="surveyQuItem">
  522. <div class="surveyQuItemContent">
  523. <div class="quCoTitle">
  524. <legend>
  525. <span class="quTitleNum">${i.count }、</span>
  526. <span class="quTitleText">${en.quTitle}</span>
  527. </legend>
  528. </div>
  529. <div class="quCoItem">
  530. <c:forEach items="${en.rows }" var="rowItem">
  531. <fieldset data-role="controlgroup" class="dwQuCoChenRowTr">
  532. <legend>${rowItem.optionName }</legend>
  533. <input type="hidden" class="answerTag" value="0" >
  534. <c:forEach items="${en.columns }" var="columnItem">
  535. <div class="dwQuOptionItemContent">
  536. <label for="item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id}">${columnItem.optionName }</label>
  537. <input type="hidden" class="dwChenInputTemp" disabled="disabled" value="${rowItem.id }:${columnItem.id }">
  538. <input id="item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id}" name="item_qu_${en.quType }_${en.id }_${rowItem.id }" value="${columnItem.id }" type="radio">
  539. </div>
  540. </c:forEach>
  541. </fieldset>
  542. </c:forEach>
  543. </div>
  544. <div style="clear: both;"></div>
  545. </div>
  546. </div>
  547. </div>
  548. </li>
  549. </c:when>
  550. <%--矩阵多选题 --%>
  551. <c:when test="${en.quType eq 'CHENCHECKBOX' }">
  552. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  553. <div class="surveyQuItemBody">
  554. <div class="initLine"></div>
  555. <div class="quInputCase" style="display: none;">
  556. <input type="hidden" class="quType" value="CHENCHECKBOX">
  557. <input type="hidden" class="quId" value="${en.id }">
  558. <input type="hidden" class="orderById" value="${en.orderById }"/>
  559. <input type="hidden" class="isRequired" value="${en.isRequired }">
  560. <div class="quLogicInputCase">
  561. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  562. <div class="quLogicItem quLogicItem_${logicSts.count }">
  563. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  564. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  565. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  566. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  567. </div>
  568. </c:forEach>
  569. </div>
  570. <input type="hidden" name="qu_${en.quType }_${en.id }" value="item_qu_${en.quType }_${en.id }_" />
  571. </div>
  572. <div class="surveyQuItem">
  573. <div class="surveyQuItemContent">
  574. <div class="quCoTitle">
  575. <legend>
  576. <span class="quTitleNum">${i.count }、</span>
  577. <span class="quTitleText">${en.quTitle}</span>
  578. </legend>
  579. </div>
  580. <div class="quCoItem">
  581. <c:forEach items="${en.rows }" var="rowItem">
  582. <input type="hidden" name="item_qu_${en.quType }_${en.id }_${rowItem.id }" value="ck_item_qu_${en.quType }_${en.id }_${rowItem.id }_" />
  583. <input type="hidden" class="answerTag" value="0" >
  584. <fieldset data-role="controlgroup" class="dwQuCoChenRowTr">
  585. <legend>${rowItem.optionName }</legend>
  586. <c:forEach items="${en.columns }" var="columnItem">
  587. <div class="dwQuOptionItemContent">
  588. <label for="ck_item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id}">${columnItem.optionName }</label>
  589. <input type="hidden" class="dwChenInputTemp" disabled="disabled" value="${rowItem.id }:${columnItem.id }">
  590. <input id="ck_item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id}" name="ck_item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id}" value="${columnItem.id }" type="checkbox">
  591. </div>
  592. </c:forEach>
  593. </fieldset>
  594. </c:forEach>
  595. </div>
  596. <div style="clear: both;"></div>
  597. </div>
  598. </div>
  599. </div>
  600. </li>
  601. </c:when>
  602. <%-- 矩阵填空题 --%>
  603. <c:when test="${en.quType eq 'CHENFBK' }">
  604. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  605. <div class="surveyQuItemBody">
  606. <div class="initLine"></div>
  607. <div class="quInputCase" style="display: none;">
  608. <input type="hidden" class="quType" value="CHENFBK">
  609. <input type="hidden" class="quId" value="${en.id }">
  610. <input type="hidden" class="orderById" value="${en.orderById }"/>
  611. <input type="hidden" class="isRequired" value="${en.isRequired }">
  612. <div class="quLogicInputCase">
  613. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  614. <div class="quLogicItem quLogicItem_${logicSts.count }">
  615. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  616. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  617. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  618. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  619. </div>
  620. </c:forEach>
  621. </div>
  622. <input type="hidden" name="qu_${en.quType }_${en.id }" value="item_qu_${en.quType }_${en.id }_" />
  623. </div>
  624. <div class="surveyQuItem">
  625. <div class="surveyQuItemContent">
  626. <div class="quCoTitle">
  627. <legend>
  628. <span class="quTitleNum">${i.count }、</span>
  629. <span class="quTitleText">${en.quTitle}</span>
  630. </legend>
  631. </div>
  632. <div class="quCoItem">
  633. <c:forEach items="${en.rows }" var="rowItem">
  634. <input type="hidden" name="item_qu_${en.quType }_${en.id }_${rowItem.id }" value="fbk_item_qu_${en.quType }_${en.id }_${rowItem.id }_" />
  635. <fieldset data-role="controlgroup" >
  636. <legend>${rowItem.optionName }</legend>
  637. <c:forEach items="${en.columns }" var="columnItem">
  638. <div class="dwQuChenFbkOptionItemContent">
  639. <label for="fbk_item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id }" class="ui-hidden-accessible">姓名</label>
  640. <input placeholder="${columnItem.optionName }" id="fbk_item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id }" name="fbk_item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id }" type="text" class="dwChenMFillblankInput">
  641. <input type="hidden" class="dwChenInputTemp" disabled="disabled" value="${rowItem.id }:${columnItem.id }">
  642. <input type="hidden" class="answerTag" value="0" >
  643. </div>
  644. </c:forEach>
  645. </fieldset>
  646. </c:forEach>
  647. </div>
  648. <div style="clear: both;"></div>
  649. </div>
  650. </div>
  651. </div>
  652. </li>
  653. </c:when>
  654. <%-- 矩阵评分题 --%>
  655. <c:when test="${en.quType eq 'CHENSCORE' }">
  656. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  657. <div class="surveyQuItemBody">
  658. <div class="initLine"></div>
  659. <div class="quInputCase" style="display: none;">
  660. <input type="hidden" class="quType" value="CHENSCORE">
  661. <input type="hidden" class="quId" value="${en.id }">
  662. <input type="hidden" class="orderById" value="${en.orderById }"/>
  663. <input type="hidden" class="isRequired" value="${en.isRequired }">
  664. <div class="quLogicInputCase">
  665. <c:forEach items="${en.questionLogics }" var="quLogicEn" varStatus="logicSts">
  666. <div class="quLogicItem quLogicItem_${logicSts.count }">
  667. <input type="hidden" class="cgQuItemId" value="${quLogicEn.cgQuItemId }"/>
  668. <input type="hidden" class="skQuId" value="${quLogicEn.skQuId }"/>
  669. <input type="hidden" class="logicId" value="${quLogicEn.id }"/>
  670. <input type="hidden" class="logicType" value="${quLogicEn.logicType }"/>
  671. </div>
  672. </c:forEach>
  673. </div>
  674. <input type="hidden" name="qu_${en.quType }_${en.id }" value="item_qu_${en.quType }_${en.id }_" />
  675. </div>
  676. <div class="surveyQuItem">
  677. <div class="surveyQuItemContent">
  678. <div class="quCoTitle">
  679. <legend>
  680. <span class="quTitleNum">${i.count }、</span>
  681. <span class="quTitleText">${en.quTitle}</span>
  682. </legend>
  683. </div>
  684. <div class="quCoItem">
  685. <c:forEach items="${en.rows }" var="rowItem">
  686. <input type="hidden" name="item_qu_${en.quType }_${en.id }_${rowItem.id }" value="cs_item_qu_${en.quType }_${en.id }_${rowItem.id }_" />
  687. <c:forEach items="${en.columns }" var="columnItem">
  688. <div class="scoreRow">
  689. <fieldset class="starRating" data-role="controlgroup" >
  690. <legend>${rowItem.optionName }&nbsp;&nbsp;${columnItem.optionName }</legend>
  691. <i class="fa fa-star-o"></i>
  692. <i class="fa fa-star-o"></i>
  693. <i class="fa fa-star-o"></i>
  694. <i class="fa fa-star-o"></i>
  695. <i class="fa fa-star-o"></i>
  696. </fieldset>
  697. <input name="cs_item_qu_${en.quType }_${en.id }_${rowItem.id }_${columnItem.id}" value="0" type="hidden" class="scoreNumInput" >
  698. </div>
  699. <input type="hidden" class="dwChenInputTemp" disabled="disabled" value="${rowItem.id }:${columnItem.id }">
  700. <input type="hidden" class="answerTag" value="0" >
  701. </c:forEach>
  702. </c:forEach>
  703. <%-- <div class="quCoItemLeftChenTableDiv">
  704. <table class="quCoChenTable" >
  705. <tr><td></td>
  706. <c:forEach items="${en.columns }" var="columnItem">
  707. <td class="quChenColumnTd"><label class="editAble quCoOptionEdit">${columnItem.optionName }</label></td>
  708. </c:forEach>
  709. </tr>
  710. <c:forEach items="${en.rows }" var="rowItem">
  711. <tr><td class="quChenRowTd"><label class="editAble quCoOptionEdit">${rowItem.optionName }</label></td>
  712. <c:forEach items="${en.columns }" var="columnItem">
  713. <td>评分 </td>
  714. </c:forEach>
  715. </tr>
  716. </c:forEach>
  717. </table>
  718. </div> --%>
  719. </div>
  720. <div style="clear: both;"></div>
  721. </div>
  722. </div>
  723. </div>
  724. </li>
  725. </c:when>
  726. </c:choose>
  727. </c:forEach>
  728. <li class="li_surveyQuItemBody surveyQu_${pageNo }" style="${pageNo gt 1 ?'display: none':''}">
  729. <div class="surveyQuItemBody">
  730. <div class="surveyQuItem">
  731. <!-- <div class="pageBorderTop nohover" ></div> -->
  732. <div id="jcaptchaImgBody" class="r-qu-body" style="display: none;">
  733. <div class="frmItem" style="">
  734. <label for="" class="frm_label">验证码</label>
  735. <div class="frm_controls">
  736. <span class="auth-code" id="verifycodeImgArea">
  737. <input name="jcaptchaInput" type="text" class="" style="" autocomplete="off">
  738. <img id="register-jcaptchaImg" onclick="refreshAutoCode('register-jcaptchaImg')" src="${ctx }/jcaptcha.action" alt="验证码" height="40"></span>
  739. <a href="javascript:refreshAutoCode('register-jcaptchaImg');" style="margin-left: 5px;" hidefocus="true">换一张</a>
  740. <span class="frm_desc">验证码,区分大小写</span>
  741. <p class="valid-msg fail" style="display: none;"><i>●</i><span class="msg_content">验证码错误,请重新输入</span></p>
  742. </div>
  743. </div>
  744. <div class="errorItem" style="display: none;"><label for="" class="error">验证码错误,请重新输入!</label></div>
  745. <%-- 验证码:<input type="text" size="8" name="jcaptchaInput">
  746. &nbsp;<img id="jcaptchaImg" alt="点击刷新" src="${ctx }/jcaptcha.action" align="top">
  747. &nbsp;点击图片刷新 --%>
  748. </div>
  749. <input type="hidden" class="quType" value="submitSurveyBtn">
  750. <div class="surveyQuItemContent" style="margin-bottom: 0px;min-height:20px;">
  751. <!-- <a href="#" data-theme="b" data-role="button">提&nbsp;交</a>&nbsp;&nbsp; -->
  752. <input type="button" class="submitSurvey" id="submitSurvey" value="提&nbsp;交" data-role="button" data-theme="b" />
  753. <!-- <a href="#" class="sbtn24 sbtn24_0 submitSurvey">提&nbsp;交</a>&nbsp;&nbsp; -->
  754. <c:if test="${pageNo > 1 }">
  755. <a href="#" class="sbtn24 sbtn24_1 prevPage_a">上一页</a>
  756. <input type="hidden" name="prevPageNo" value="${pageNo-1 }">
  757. </c:if>
  758. <c:set var="pageNo" value="${pageNo+1 }"></c:set>
  759. <input type="hidden" name="nextPageNo" value="${pageNo }">
  760. </div>
  761. </div>
  762. </div>
  763. </li>
  764. </ul>
  765. </div>
  766. </div>
  767. </div>
  768. <div data-role="footer">
  769. <%--请保留以下内容--%>
  770. <h3>Powered by <a href="http://diaowen.net/index-m.jsp" style="text-decoration: none;" rel="external">DWSurvey</a></h3>
  771. </div>
  772. </div>
  773. </form>
  774. <div id="fixedMsg" style="position: fixed;top: 0px;width: 100%;padding: 10px;text-align: center;font-size: 18px;letter-spacing: 4px;line-height: 56px;background-color: #111;background-color: rgba(17,17,17,0.5);color: #fff;color: rgba(255,255,255,0.5);z-index: 200;display: none;"></div>
  775. <script type="text/javascript">
  776. $(document).ready(function(){
  777. //分页设置 nextPage_a prevPage_a
  778. $(".nextPage_a").click(function(){
  779. var thParent=$(this).parent();
  780. var nextPageNo=thParent.find("input[name='nextPageNo']").val();
  781. $(".li_surveyQuItemBody").hide();
  782. $(".surveyQu_"+nextPageNo).fadeIn("slow");
  783. //$(window).scrollTop(10);
  784. $("html,body").animate({scrollTop:10},500);
  785. return false;
  786. });
  787. $(".prevPage_a").click(function(){
  788. var thParent=$(this).parent();
  789. var prevPageNo=thParent.find("input[name='prevPageNo']").val();
  790. $(".li_surveyQuItemBody").hide();
  791. $(".surveyQu_"+prevPageNo).fadeIn("slow");
  792. $(window).scrollTop(10);
  793. return false;
  794. });
  795. /**排序题*/
  796. $(".m_clickQuOrderItem").click(function(){
  797. var visibleOrderbyNum=$(this).parents().find(".m_orderby_num:visible");
  798. var thOrderbyNum=$(this).find(".m_orderby_num");
  799. if($(this).find(".m_orderby_num:visible")[0]){
  800. }else{
  801. var thNum=0;
  802. $(this).append("<select class='m_orderby_sel' > </select>");
  803. var mOrderbySel=$(this).find(".m_orderby_sel");
  804. var quOrderItems=$(this).parents().find(".m_clickQuOrderItem");
  805. $.each(quOrderItems,function(i,item){
  806. mOrderbySel.append("<option value='"+(i+1)+"'>移至排序"+(i+1)+"</option>");
  807. var targetHid=$(this).parents(".ui-controlgroup-controls ").find(".quOrderItemHidInput[value='"+(i+1)+"']");
  808. if(!targetHid[0] && thNum===0){
  809. thNum=(i+1);
  810. }
  811. });
  812. thOrderbyNum.text(thNum);
  813. thOrderbyNum.show();
  814. mOrderbySel.val(thNum)
  815. $(this).find(".quOrderItemHidInput").val(thNum);
  816. }
  817. bindEvent();
  818. runlogic($(this));
  819. validateCheck($(this).parents(".li_surveyQuItemBody"),false);
  820. return false;
  821. });
  822. function bindEvent(){
  823. $(".m_orderby_sel").unbind();
  824. $(".m_orderby_sel").change(function(){
  825. //交换个排
  826. var thOrderbyItem=$(this).parents(".m_clickQuOrderItem");
  827. var thOrderByNum=thOrderbyItem.find(".quOrderItemHidInput").val();
  828. var thChangeNum=$(this).val();
  829. var targetHid=$(this).parents(".ui-controlgroup-controls ").find(".quOrderItemHidInput[value='"+thChangeNum+"']");
  830. if(targetHid[0]){
  831. var targetOrderbyItem=targetHid.parents(".m_clickQuOrderItem");
  832. targetOrderbyItem.find(".m_orderby_num").text(thOrderByNum);
  833. targetOrderbyItem.find(".quOrderItemHidInput").val(thOrderByNum);
  834. targetOrderbyItem.find(".m_orderby_sel").val(thOrderByNum);
  835. }
  836. thOrderbyItem.find(".m_orderby_num").text(thChangeNum);
  837. thOrderbyItem.find(".quOrderItemHidInput").val(thChangeNum);
  838. thOrderbyItem.find(".m_orderby_sel").val(thChangeNum);
  839. });
  840. }
  841. /**评分题*/
  842. $(".starRating .fa").hover(function(){
  843. var prevAll=$(this).prevAll();
  844. prevAll.removeClass("fa-star-o");
  845. prevAll.addClass("fa-star");
  846. $(this).removeClass("fa-star-o");
  847. $(this).addClass("fa-star");
  848. },function(){
  849. var scoreRow=$(this).parents(".scoreRow");
  850. var starNum=scoreRow.find(".scoreNumInput").val();
  851. if(starNum==""&&starNum<=0){
  852. var thParent=$(this).parent();
  853. var fas=thParent.find(".fa");
  854. fas.removeClass("fa-star");
  855. fas.addClass("fa-star-o");
  856. }
  857. });
  858. $(".starRating .fa").click(function(){
  859. var thParent=$(this).parent();
  860. var fas=thParent.find(".fa");
  861. fas.removeClass("fa-star");
  862. fas.addClass("fa-star-o");
  863. var prevAll=$(this).prevAll();
  864. prevAll.removeClass("fa-star-o");
  865. prevAll.addClass("fa-star");
  866. $(this).removeClass("fa-star-o");
  867. $(this).addClass("fa-star");
  868. var scoreRow=$(this).parents(".scoreRow");
  869. var starNum=0;
  870. if(prevAll[0]){
  871. starNum=prevAll.size();
  872. }
  873. scoreRow.find(".scoreNumInput").val(starNum+1);
  874. runlogic($(this));
  875. validateCheck($(this).parents(".li_surveyQuItemBody"),false);
  876. return false;
  877. });
  878. //表单验证
  879. /**初始化表单骓证配置**/
  880. function validateForms(){
  881. var result=true;
  882. var surveyQuItemBodys=$(".li_surveyQuItemBody");
  883. var firstError=null;
  884. $.each(surveyQuItemBodys,function(){
  885. var quItemBody=$(this);
  886. if(!validateCheck(quItemBody,true)){
  887. //定位到这题
  888. if(firstError==null){
  889. firstError=quItemBody;
  890. }
  891. result=false;
  892. }
  893. // || quType==="CHENRADIO" || quType==="CHENCHECKBOX" || quType==="CHENSCORE" || quType==="CHENFBK"
  894. });
  895. if(firstError!=null){
  896. $(window).scrollTop(firstError.offset().top);
  897. }
  898. if($("#jcaptchaImgBody").is(":visible")){
  899. var jcaptchaInput = $("input[name='jcaptchaInput']").val();
  900. if(jcaptchaInput===""){
  901. $("#jcaptchaImgBody .errorItem").show();
  902. result = false;
  903. }else{
  904. $("#jcaptchaImgBody .errorItem").hide();
  905. }
  906. }
  907. return result;
  908. }
  909. function validateCheck(quItemBody,isSubForm){
  910. if(quItemBody.is(":visible")){
  911. var quId=quItemBody.find(".quId").val();
  912. var quType=quItemBody.find(".quType").val();
  913. var isRequired=quItemBody.find(".isRequired").val();
  914. var validateStatus=false;
  915. if(isRequired==="0"){
  916. validateStatus = true;
  917. return true;
  918. }
  919. if(quType==="RADIO"){
  920. validateStatus=quItemBody.find("input[type='radio']:checked")[0];
  921. }else if(quType==="CHECKBOX"){
  922. validateStatus=quItemBody.find("input[type='checkbox']:checked")[0];
  923. }else if(quType==="FILLBLANK"){
  924. validateStatus=quItemBody.find(".fillblankInput").val()!="";
  925. }else if(quType==="ORDERQU"){
  926. //quItemBody.find(".quOrderByLeftUl label");
  927. validateStatus=!quItemBody.find(".quOrderItemHidInput[value=0]")[0];
  928. }else if(quType==="SCORE"){
  929. validateStatus=true;
  930. var quScoreOptionTrs=quItemBody.find(".quScoreOptionTr");
  931. $.each(quScoreOptionTrs,function(){
  932. var scoreNumInput=$(this).find(".scoreNumInput");
  933. if(scoreNumInput.val()===""){
  934. validateStatus=false;
  935. return false;
  936. }
  937. });
  938. }else if(quType==="MULTIFILLBLANK"){
  939. validateStatus=true;
  940. var quScoreOptionTrs=quItemBody.find(".mFillblankTableTr");
  941. $.each(quScoreOptionTrs,function(){
  942. var scoreNumInput=$(this).find(".dwMFillblankInput");
  943. if(scoreNumInput.val()===""){
  944. validateStatus=false;
  945. return false;
  946. }
  947. });
  948. }else if(quType==="CHENRADIO"){
  949. validateStatus=true;
  950. var quScoreOptionTrs=quItemBody.find(".dwQuCoChenRowTr");
  951. $.each(quScoreOptionTrs,function(){
  952. var tempInputs=$(this).find("input[type='radio']:checked");
  953. if(!tempInputs[0]){
  954. validateStatus=false;
  955. return false;
  956. }
  957. });
  958. }else if(quType==="CHENCHECKBOX"){
  959. validateStatus=true;
  960. var quScoreOptionTrs=quItemBody.find(".dwQuCoChenRowTr");
  961. $.each(quScoreOptionTrs,function(){
  962. var tempInputs=$(this).find("input[type='checkbox']:checked");
  963. if(!tempInputs[0]){
  964. validateStatus=false;
  965. return false;
  966. }
  967. });
  968. }else if(quType==="CHENSCORE"){
  969. /* var quChenScores=quItemBody.find(".quChenScoreSelect");
  970. validateStatus=true;
  971. $.each(quChenScores,function(){
  972. var tempInputs=$(this);
  973. if(tempInputs.val()==="0"){
  974. validateStatus=false;
  975. return false;
  976. }
  977. }); */
  978. validateStatus=!(quItemBody.find(".scoreNumInput[value=0]")[0]);
  979. }else if(quType==="CHENFBK"){
  980. var dwCMFBKs=quItemBody.find(".dwChenMFillblankInput");
  981. validateStatus=true;
  982. $.each(dwCMFBKs,function(){
  983. var tempInputs=$(this);
  984. if(tempInputs.val()===""){
  985. validateStatus=false;
  986. return false;
  987. }
  988. });
  989. }else if(quType==="submitSurveyBtn" || quType==="PARAGRAPH" || quType==="PAGETAG"){
  990. return true;
  991. }
  992. }else{
  993. validateStatus=true;
  994. }
  995. if(validateStatus){
  996. quItemBody.find(".errorItem").remove();
  997. }else{
  998. if(isSubForm && !quItemBody.find(".errorItem")[0]){
  999. var errorHtml="<div class=\"errorItem\"><label for=\"\" class=\"error\">请检查题目答案,为必答项!</label></div>";
  1000. quItemBody.find(".surveyQuItemContent").append(errorHtml);
  1001. }
  1002. }
  1003. return validateStatus;
  1004. }
  1005. $(".submitSurvey").click(function(){
  1006. if(validateForms()){
  1007. $("#surveyForm").submit();
  1008. }
  1009. return false;
  1010. });
  1011. //绑定操作事件
  1012. $("#dwSurveyQuContent input[type='radio'],#dwSurveyQuContent input[type='checkbox']").change(function(){
  1013. runlogic($(this));
  1014. validateCheck($(this).parents(".li_surveyQuItemBody"),false);
  1015. });
  1016. //填空题
  1017. $(".fillblankInput,.dwMFillblankInput,.dwChenMFillblankInput").blur(function(){
  1018. //$(this).css("borderColor","#D6D6FF");
  1019. runlogic($(this));
  1020. validateCheck($(this).parents(".li_surveyQuItemBody"),false);
  1021. });
  1022. function resetQuNum(){
  1023. var quTitleNums=$(".quTitleNum");
  1024. $.each(quTitleNums,function(i,item){
  1025. $(this).text((i+1)+"、")
  1026. });
  1027. }
  1028. resetQuNum();
  1029. //处理标题因有p标签影响题目序号换行的问题
  1030. var quTitleNums=$(".quTitleNum");
  1031. $.each(quTitleNums,function(){
  1032. var nextObj=$(this).next();
  1033. if(nextObj[0]){
  1034. var childrens=nextObj.children();
  1035. if(childrens[0]){
  1036. var firstChildren=childrens.first();
  1037. if(firstChildren.is("p")){
  1038. $(this).prependTo(firstChildren);
  1039. }
  1040. }
  1041. }
  1042. });
  1043. });
  1044. /******************************处理题目逻辑设置 **************************************/
  1045. //处理题目逻辑设置
  1046. /** 答题触发事件 **/
  1047. //初始化 处理默认逻辑跳转为显示,则先隐藏元素
  1048. var quLogics=$("#dwSurveyQuContent .quLogicItem");
  1049. $.each(quLogics,function(){
  1050. var loginItem=$(this);
  1051. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  1052. var skQuId=loginItem.find(".skQuId").val();
  1053. var logicId=loginItem.find(".logicId").val();
  1054. var logicType=loginItem.find(".logicType").val();
  1055. if(logicType==="2"){
  1056. //逻辑类型为“显示”2 则初始化为隐藏
  1057. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  1058. hidQuItemBody.hide();
  1059. hidQuItemBody.addClass("hidFor"+logicId);
  1060. hidQuItemBody.find(".answerTag").attr("disabled",true);
  1061. }
  1062. });
  1063. function runlogic(thFormElementObj){
  1064. //thFormElementObj 当前关联的form表单元素
  1065. var quItemBody=thFormElementObj.parents(".li_surveyQuItemBody");
  1066. var quLogicItems=quItemBody.find(".quLogicItem");
  1067. if(quLogicItems[0]){
  1068. var quInputCase=quItemBody.find(".quInputCase");
  1069. var quId=quInputCase.find(".quId").val();
  1070. var quType=quInputCase.find(".quType").val();
  1071. //$("input[name='qu_"+quType+"_"+quId+"']").change(function(){});
  1072. if(quType==="RADIO" || quType==="CHECKBOX" || quType==="SCORE" || quType==="MULTIFILLBLANK" || quType==="CHENRADIO" || quType==="CHENCHECKBOX" || quType==="CHENSCORE" || quType==="CHENFBK" ){
  1073. //判断是否选中
  1074. var quLgoicItem=null;
  1075. //var thVal=thFormElementObj.val();
  1076. //遍历每个逻辑设置
  1077. var quOptionItems=null;
  1078. if(quType==="RADIO" || quType==="CHECKBOX"){
  1079. quOptionItems=quItemBody.find(".dwQuOptionItemContent");
  1080. //thVal=thFormElementObj.val();
  1081. }else if(quType==="SCORE"){
  1082. quOptionItems=quItemBody.find(".quScoreOptionTr");
  1083. //thVal=thFormElementObj.text();
  1084. }else if(quType==="MULTIFILLBLANK"){
  1085. quOptionItems=quItemBody.find(".mFillblankTableTr");
  1086. }else if(quType==="CHENRADIO" || quType==="CHENCHECKBOX"){
  1087. quOptionItems=quItemBody.find(".dwQuOptionItemContent");
  1088. }else if(quType==="CHENFBK" ){
  1089. quOptionItems=quItemBody.find(".dwQuChenFbkOptionItemContent");
  1090. }
  1091. $.each(quLogicItems,function(){
  1092. var loginItem=$(this);
  1093. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  1094. var skQuId=loginItem.find(".skQuId").val();
  1095. var logicId=loginItem.find(".logicId").val();
  1096. var logicType=loginItem.find(".logicType").val();
  1097. var geLe=null;
  1098. var scoreNum=null;
  1099. if(quType==="SCORE"){
  1100. geLe=loginItem.find(".geLe").val();
  1101. scoreNum=loginItem.find(".scoreNum").val();
  1102. }
  1103. //过滤优先级
  1104. var isbreak=false;
  1105. $.each(quOptionItems,function(){
  1106. var quCoItem=$(this);
  1107. var quInput=null;
  1108. var logicStatus=false;
  1109. var curQuItemId=null;
  1110. if(quType==="RADIO"){
  1111. quInput=quCoItem.find("input[type='radio']");
  1112. logicStatus=quInput.prop("checked");
  1113. curQuItemId=quInput.val();
  1114. }else if(quType==="CHECKBOX"){
  1115. quInput=quCoItem.find("input[type='checkbox']");
  1116. logicStatus=quInput.prop("checked");
  1117. curQuItemId=quInput.val();
  1118. }else if(quType==="SCORE"){
  1119. quInput=quCoItem.find(".dwScoreOptionId");
  1120. var curScore=quCoItem.find(".scoreNumInput").val();
  1121. if(curScore!=""){
  1122. logicStatus = (geLe==="le" && curScore<=scoreNum) || (geLe==="ge" && curScore>=scoreNum);
  1123. }
  1124. curQuItemId=quInput.val();
  1125. }else if(quType==="MULTIFILLBLANK"){
  1126. quInput=quCoItem.find(".dwMFillblankOptionId");
  1127. logicStatus=quCoItem.find(".dwMFillblankInput").val()!="";
  1128. curQuItemId=quInput.val();
  1129. }else if(quType==="CHENRADIO"){
  1130. quInput=quCoItem.find("input[type='radio']");
  1131. logicStatus=quInput.prop("checked");
  1132. curQuItemId=quCoItem.find(".dwChenInputTemp").val();
  1133. }else if(quType==="CHENCHECKBOX"){
  1134. quInput=quCoItem.find("input[type='checkbox']");
  1135. logicStatus=quInput.prop("checked");
  1136. curQuItemId=quCoItem.find(".dwChenInputTemp").val();
  1137. }else if(quType==="CHENFBK"){
  1138. quInput=quCoItem.find(".dwChenMFillblankInput");
  1139. logicStatus=quInput.val()!="";
  1140. curQuItemId=quCoItem.find(".dwChenInputTemp").val();
  1141. }
  1142. if(curQuItemId===cgQuItemId){
  1143. if(logicType==="1"){
  1144. //跳转
  1145. if(logicStatus){
  1146. //逻辑选项被选中状态,激活状态
  1147. skQuestion(quItemBody.next(),skQuId,logicId,function(){
  1148. //重新编题号
  1149. });
  1150. if(skQuId==="1" || skQuId==="2" ){
  1151. isbreak=true;
  1152. }
  1153. }else{
  1154. /*
  1155. //逻辑选项未被选中状态,未激活
  1156. //$(".hidFor"+loginId).slideDown("slow");
  1157. $(".hidFor"+loginId).show();
  1158. //$(".hidFor"+loginId).fadeIn();
  1159. $(".hidFor"+loginId).removeClass("hidFor"+loginId);
  1160. //回答标记与逻辑设置没有关系
  1161. $(".hidFor"+loginId).find(".answerTag").attr("disabled",false);
  1162. */
  1163. var hidQuItemBodys=$(".hidFor"+logicId);
  1164. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  1165. $.each(hidQuItemBodys,function(){
  1166. var thQuItemBodyClass=$(this).attr("class");
  1167. if(thQuItemBodyClass.indexOf("hidFor")<0){
  1168. $(this).show();
  1169. //$(".hidFor"+loginId).fadeIn();
  1170. //回答标记与逻辑设置没有关系
  1171. $(this).find(".answerTag").attr("disabled",false);
  1172. }
  1173. });
  1174. }
  1175. }else{
  1176. //逻辑类型为“显示” quType=2
  1177. if(logicStatus){
  1178. //逻辑选项被选中状态,激活状态 显示题
  1179. var hidQuItemBodys=$(".hidFor"+logicId);
  1180. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  1181. $.each(hidQuItemBodys,function(){
  1182. var thQuItemBodyClass=$(this).attr("class");
  1183. if(thQuItemBodyClass.indexOf("hidFor")<0){
  1184. $(this).show();
  1185. $(this).find(".answerTag").attr("disabled",false);
  1186. }
  1187. });
  1188. }else{
  1189. /* 隐藏题
  1190. */
  1191. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  1192. hidQuItemBody.hide();
  1193. hidQuItemBody.addClass("hidFor"+logicId);
  1194. hidQuItemBody.find(".answerTag").attr("disabled",true);
  1195. }
  1196. }
  1197. return false;
  1198. }
  1199. });
  1200. if(isbreak){
  1201. return false;
  1202. }
  1203. });
  1204. }else if(quType==="FILLBLANK"){
  1205. //遍历每个逻辑设置
  1206. var quOptionItems=quItemBody.find(".dwQuOptionItemContent");
  1207. var thVal=thFormElementObj.val();
  1208. $.each(quLogicItems,function(){
  1209. var loginItem=$(this);
  1210. var cgQuItemId=loginItem.find(".cgQuItemId").val();
  1211. var skQuId=loginItem.find(".skQuId").val();
  1212. var logicId=loginItem.find(".logicId").val();
  1213. var logicType=loginItem.find(".logicType").val();
  1214. if(logicType==="1"){
  1215. //跳转
  1216. if(thVal!=""){
  1217. //逻辑选项被选中状态,激活状态
  1218. skQuestion(quItemBody.next(),skQuId,logicId,function(){
  1219. //重新编题号
  1220. });
  1221. if(skQuId==="1" || skQuId==="2" ){
  1222. isbreak=true;
  1223. }
  1224. }else{
  1225. //逻辑选项未被选中状态,未激活
  1226. //$(".hidFor"+loginId).slideDown("slow");
  1227. var hidQuItemBodys=$(".hidFor"+logicId);
  1228. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  1229. $.each(hidQuItemBodys,function(){
  1230. var thQuItemBodyClass=$(this).attr("class");
  1231. if(thQuItemBodyClass.indexOf("hidFor")<0){
  1232. $(this).show();
  1233. //$(".hidFor"+loginId).fadeIn();
  1234. //回答标记与逻辑设置没有关系
  1235. $(this).find(".answerTag").attr("disabled",false);
  1236. }
  1237. });
  1238. }
  1239. }else{
  1240. //显示
  1241. //逻辑类型为“显示” quType=1
  1242. if(thVal!=""){
  1243. //逻辑选项被选中状态,激活状态 显示题
  1244. var hidQuItemBodys=$(".hidFor"+logicId);
  1245. $(".hidFor"+logicId).removeClass("hidFor"+logicId);
  1246. $.each(hidQuItemBodys,function(){
  1247. var thQuItemBodyClass=$(this).attr("class");
  1248. if(thQuItemBodyClass.indexOf("hidFor")<0){
  1249. $(this).show();
  1250. $(this).find(".answerTag").attr("disabled",false);
  1251. }
  1252. });
  1253. }else{
  1254. /* 隐藏题
  1255. */
  1256. var hidQuItemBody=$(".quId[value='"+skQuId+"']").parents(".li_surveyQuItemBody");
  1257. hidQuItemBody.hide();
  1258. hidQuItemBody.addClass("hidFor"+logicId);
  1259. hidQuItemBody.find(".answerTag").attr("disabled",true);
  1260. }
  1261. }
  1262. });
  1263. }
  1264. }
  1265. }
  1266. function skQuestion(nextQuItemBody,skQuId,logicId,callback){
  1267. if(nextQuItemBody[0]){
  1268. //submitSurveyBtn
  1269. var nextQuType=nextQuItemBody.find(".quType").val();
  1270. var nextQuId=nextQuItemBody.find(".quId").val();
  1271. var nextAnswerTag=nextQuItemBody.find(".answerTag");
  1272. //var quType=quItemBody.find(".quType").val();
  1273. //var quId=quItemBody.find(".quId").val();
  1274. //判断跳转类型
  1275. if(skQuId==null){
  1276. //对于逻辑选项未被选中的情况
  1277. }else if(nextQuItemBody.is(":hidden")){
  1278. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  1279. });
  1280. }else if(nextQuType!="submitSurveyBtn" && nextQuType!="PAGETAG" && (skQuId==="1" || skQuId==="2" || nextQuId!=skQuId) ){
  1281. //对于逻辑项是被选定的情况下
  1282. nextAnswerTag.attr("disabled",true);
  1283. //nextQuItemBody.slideUp("slow");
  1284. nextQuItemBody.hide();
  1285. //nextQuItemBody.fadeOut();
  1286. nextQuItemBody.addClass("hidFor"+logicId);
  1287. skQuestion(nextQuItemBody.next(),skQuId,logicId,function(){
  1288. });
  1289. }
  1290. }else{
  1291. callback();
  1292. }
  1293. }
  1294. /******************************处理题目逻辑设置结束 **************************************/
  1295. function refreshAutoCode(codeImgId){
  1296. $("#"+codeImgId).attr("src","${ctx}/jcaptcha.action");
  1297. }
  1298. //判则判断
  1299. var url="${ctx}/response!ajaxCheckSurvey.action";
  1300. var data="surveyId=${survey.id}";
  1301. $.ajax({
  1302. url:url,
  1303. data:data,
  1304. type:"post",
  1305. success:function(msg){
  1306. var json=eval("("+msg+")");
  1307. if(json.isCheckCode==="3"){
  1308. $("#jcaptchaImgBody").show();
  1309. }
  1310. if(json.surveyStatus!="0"){
  1311. $("#fixedMsg").show();
  1312. $("#fixedMsg").html("您已经回答过此问卷!");
  1313. $("#submitSurvey").remove();
  1314. $("form").attr("action","#");
  1315. }
  1316. }
  1317. });
  1318. var errorcode="${param['errorcode']}";
  1319. if(errorcode=="3"){
  1320. var errorHtml="<div class=\"errorItem\" style=\"padding-left:30px;padding-top:10px;\" ><label for=\"\" class=\"error\">验证码不正确,请重新回答!</label></div>";
  1321. $("#m-errorMsg").append(errorHtml);
  1322. }
  1323. </script>
  1324. <%@ include file="/WEB-INF/page/layouts/other.jsp"%>
  1325. </body>
  1326. </html>