event_join_modify.htm 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta name="viewport" content="width=device-width; initial-scale=1.0;">
  5. <title>{lang xj_event:huodbm}</title>
  6. <link rel="stylesheet" href="source/plugin/xj_event/mobileui/jquery.mobile-1.4.5.css">
  7. <script src="source/plugin/xj_event/mobileui/jquery.js"></script>
  8. <script src="source/plugin/xj_event/mobileui/jquery.mobile-1.4.5.js"></script>
  9. <script>
  10. var tabCounter = {$tabCounter},weinum = {$tabCounter},cj=0; //cj 是动态生成的表单是否已套用jquerymobile样式
  11. var event_number_max = {$items[event_number_max]};
  12. $(function(){
  13. $("#sumbitbtn").click(function(){
  14. var postjson = [];
  15. var a = false;
  16. for(var i=1;i<=tabCounter;i++){
  17. if($('#tabs-'+i).html()){
  18. var json = {};
  19. $('#tabs-'+i+' input').each(function(index) {
  20. if($(this).attr('type')=='text' || $(this).attr('type')=='hidden'){
  21. json[$(this).attr('name')] = $(this).val();
  22. }
  23. if($(this).attr('type')=='checkbox'){
  24. if($(this).is(':checked')){
  25. var checkboxname = $(this).attr('name').replace('[]','');
  26. if(json[checkboxname]){
  27. json[checkboxname] = json[checkboxname] + ',' + $(this).val();
  28. }else{
  29. json[checkboxname] = $(this).val();
  30. }
  31. }
  32. }
  33. if( $(this).attr('type')=='radio'){
  34. if($(this).is(':checked')){
  35. json[$(this).attr('name')] = $(this).val();
  36. }
  37. }
  38. if($(this).attr('type')=='date'){
  39. json[$(this).attr('name')] = $(this).val();
  40. }
  41. });
  42. $('#tabs-'+i+' select').each(function(index) {
  43. json[$(this).attr('name')] = $(this).val();
  44. });
  45. //判断是否有空的数据
  46. if(JSON.stringify(json).indexOf('""')>-1){
  47. a = true;
  48. }
  49. $('#tabs-'+i+' textarea').each(function(index) {
  50. json[$(this).attr('name')] = $(this).val();
  51. });
  52. //alert(JSON.stringify(json));
  53. postjson.push(json);
  54. }
  55. }
  56. //判断是否有空的数据
  57. if(a){
  58. confirmDialog('{lang xj_event:hbqndxxwtxwz}');
  59. $("#popupBasic").popup('open');
  60. return;
  61. }
  62. var postdata = JSON.stringify(postjson);
  63. $('#sumbitbtn').hide();
  64. $.ajax({
  65. cache: false,
  66. type: "POST",
  67. url: 'plugin.php?id=xj_event:event_join_modify&tid={$tid}&action=modifyfull&formhash={$_G[formhash]}',
  68. data: postdata,
  69. dataType: 'json',
  70. async: true,
  71. error: function(request) {
  72. alert("Connection error");
  73. $('#sumbitbtn').show();
  74. },
  75. success: function(json) {
  76. if(json.full == 1){
  77. confirmDialog(json.message);
  78. if(json.url){
  79. window.parent.parent.location.href=json.url;
  80. }else{
  81. window.parent.parent.location.href='forum.php?mod=viewthread&tid={$tid}';
  82. }
  83. return true;
  84. }else if(json.full == 2){
  85. confirmDialog(json.message);
  86. $('#sumbitbtn').show();
  87. return false;
  88. }
  89. }
  90. });
  91. });
  92. $("#addbtn").click(function(){
  93. if(weinum<=event_number_max){
  94. $("#join_content").append('<div data-role="collapsible" id="tabs-'+tabCounter+'"><h3><b>{lang xj_event:di}'+weinum+'{lang xj_event:wei}</b><span onClick="deletejoin('+tabCounter+');" class="ui-btn ui-btn-inline ui-icon-delete ui-btn-icon-notext" style="float:right; border:0px;"></span></h3><p>'+$('#bmtemplate').html()+'</p></div>');
  95. $("#join_content").collapsibleset("refresh");
  96. if(cj==0){
  97. $(".join_text").textinput();
  98. $(".myuserfield_text").textinput();
  99. $("select").selectmenu();
  100. $("textarea").textinput();
  101. $(".pc").checkboxradio();
  102. cj=1;
  103. }
  104. tabCounter++;
  105. weinum++;
  106. }
  107. });
  108. //地区选择
  109. var residecity;
  110. $("body").on("click",".residecity", function () {
  111. residecity = $(this);
  112. $.ajax({
  113. cache: false,
  114. type: "POST",
  115. url: 'plugin.php?id=xj_event:city&level=1&mobile=yes',
  116. dataType: 'html',
  117. async: true,
  118. error: function(request) {
  119. alert("Connection error");
  120. },
  121. success: function(html) {
  122. residecity.hide();
  123. residecity.next().html(html);
  124. $("#province").selectmenu();
  125. }
  126. });
  127. });
  128. $("body").on("change","#province",function(){
  129. var province = $(this).val();
  130. $.ajax({
  131. cache: false,
  132. type: "POST",
  133. url: 'plugin.php?id=xj_event:city&level=2&province='+province,
  134. dataType: 'html',
  135. async: true,
  136. error: function(request) {
  137. alert("Connection error");
  138. },
  139. success: function(html) {
  140. residecity.next().html(html);
  141. $("#province").selectmenu();
  142. $("#city").selectmenu();
  143. }
  144. });
  145. // alert($(this).find("option:selected").text());
  146. });
  147. $("body").on("change","#city",function(){
  148. var city = $(this).val();
  149. var province = $("#province").val();
  150. $.ajax({
  151. cache: false,
  152. type: "POST",
  153. url: 'plugin.php?id=xj_event:city&level=2&province='+province+'&city='+city,
  154. dataType: 'html',
  155. async: true,
  156. error: function(request) {
  157. alert("Connection error");
  158. },
  159. success: function(html) {
  160. residecity.next().html(html);
  161. $("#province").selectmenu();
  162. $("#city").selectmenu();
  163. $("#county").selectmenu();
  164. }
  165. });
  166. });
  167. $("body").on("change","#county",function(){
  168. var county = $(this).val();
  169. var province = $("#province").val();
  170. var city = $("#city").val();
  171. $.ajax({
  172. cache: false,
  173. type: "POST",
  174. url: 'plugin.php?id=xj_event:city&level=3&province='+province+'&city='+city+'&county='+county,
  175. dataType: 'html',
  176. async: true,
  177. error: function(request) {
  178. alert("Connection error");
  179. },
  180. success: function(html) {
  181. if(html.indexOf('<!--end-->')>-1){
  182. residecity.prev().html($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text());
  183. residecity.prev().prev().val($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text());
  184. residecity.next().html('');
  185. residecity.show();
  186. }else{
  187. residecity.next().html(html);
  188. $("#province").selectmenu();
  189. $("#city").selectmenu();
  190. $("#county").selectmenu();
  191. $("#town").selectmenu();
  192. }
  193. }
  194. });
  195. });
  196. $("body").on("change","#town",function(){
  197. residecity.prev().html($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text() + $("#town").find("option:selected").text());
  198. residecity.prev().prev().val($("#province").find("option:selected").text() + $("#city").find("option:selected").text() + $("#county").find("option:selected").text() + $("#town").find("option:selected").text());
  199. residecity.next().html('');
  200. residecity.show();
  201. });
  202. //单选列表
  203. $('#join_content').on("click",".xjselect span",function(){
  204. $(this).siblings('span').css("background-color","#ccc");
  205. $(this).css("background-color","#48bd46");
  206. $(this).siblings('input').attr('value',$(this).attr('data-value'));
  207. });
  208. });
  209. function deletejoin(id){
  210. $("#tabs-"+id).remove();
  211. weinum = 1;
  212. $("#join_content b").each(function(index) {
  213. $(this).html('{lang xj_event:di}'+weinum+'{lang xj_event:wei}');
  214. weinum++;
  215. //alert($(this).children("div").children("h3").children("a").children("span").html());
  216. });
  217. event.stopPropagation();
  218. }
  219. function confirmDialog(text) {
  220. var popupDialogId = 'popupDialog';
  221. $('<div data-role="popup" id="'+popupDialogId+'" class="ui-content" data-theme="a">\
  222. <p>'+text+'</p>\
  223. </div>')
  224. .appendTo($.mobile.pageContainer);
  225. var popupDialogObj = $('#' + popupDialogId);
  226. popupDialogObj.trigger('create');
  227. popupDialogObj.popup();
  228. popupDialogObj.popup('open');
  229. }
  230. </script>
  231. </head>
  232. <body>
  233. <div data-role="page" id="pageone">
  234. <!--{if !$Appbyme && !$magapp && !$QianFan}-->
  235. <div data-role="header">
  236. <h1>{lang xj_event:huodbm}</h1>
  237. </div>
  238. <!--{/if}-->
  239. <div data-role="content">
  240. <a href="plugin.php?id=xj_event:event_join&action=cannel&tid={$tid}&formhash={$_G[formhash]}" data-ajax="false" data-role="none" style=" display:block; text-decoration:none;margin:5%; background-color:#18c148; padding:10px; font-size:18px; color:#FFF; text-align:center;font-family:'Microsoft YaHei';text-shadow:none; font-weight:normal;">{lang xj_event:qxbm}</a>
  241. <div data-role="collapsible-set" id="join_content" class="joinitem">
  242. <!--{loop $apply $key $value}-->
  243. <!--{eval $i = $key+1}-->
  244. <div data-role="collapsible" <!--{if $i == 1}-->data-collapsed="false"<!--{/if}--> id="tabs-{$i}">
  245. <h3><b>{lang xj_event:di}{$i}{lang xj_event:wei}</b></h3>
  246. <p>
  247. <!--{if $setting[session]}-->
  248. <div data-role="fieldcontain">
  249. <label for="select-native-1">{lang xj_event:huodongcc}:</label>
  250. <div class="xjselect">
  251. <input type="hidden" name="session" value="{$value[session]}">
  252. <!--{loop $setting[session] $s_key $s_value}-->
  253. <span style="font-size: 14px; padding: 3px 12px; color:#fff; border-radius: 4px; margin-bottom: 5px; margin-right: 5px; float: left; font-weight: normal; text-shadow: none; background-color:<!--{if $value[session] == $s_key}-->#48bd46<!--{else}-->#ccc<!--{/if}-->;" data-value="{$s_key}">{$s_value}</span>
  254. <!--{/loop}-->
  255. <div style="clear:both;"></div>
  256. </div>
  257. </div>
  258. <!--{/if}-->
  259. <!--{if $setting[cost]}-->
  260. <div data-role="fieldcontain">
  261. <label for="select-native-2">{lang xj_event:baominglx}:</label>
  262. <select name="costclass" id="select-native-2">
  263. <!--{loop $setting[cost] $cvalue}-->
  264. <option value="{$cvalue[id]}" <!--{if $cvalue[id] == $value[ufielddata][costclass]}-->selected<!--{/if}-->>{$cvalue[cost_name]}</option>
  265. <!--{/loop}-->
  266. </select>
  267. </div>
  268. <!--{/if}-->
  269. <!--{if !empty($selectuserfield)}-->
  270. <!--{loop $selectuserfield $fieldid}-->
  271. <!--{if $settings[$fieldid][available]}-->
  272. <div data-role="fieldcontain">
  273. <label for="textarea-1">$settings[$fieldid][title]</label>
  274. <!--{if $settings[$fieldid][formtype] != 'file'}-->
  275. <!--{if $settings[$fieldid][formtype] == 'checkbox'}-->
  276. $value[ufielddata][$fieldid]
  277. <!--{elseif $fieldid == 'residecity'}-->
  278. <!--{eval
  279. echo str_replace('value=""><span></span>','value="'.$value[ufielddata][$fieldid].'"><span>'.$value[ufielddata][$fieldid].'</span>',$htmls[$fieldid]);
  280. }-->
  281. <!--{elseif $settings[$fieldid][formtype] == 'select'}-->
  282. {eval
  283. $tmphtml = str_replace('value=""','value="'.$value[ufielddata][$fieldid].'"',$htmls[$fieldid]);
  284. echo str_replace('data-value="'.$value[ufielddata][$fieldid].'" style="background-color:#ccc;','data-value="'.$value[ufielddata][$fieldid].'" style="background-color:#48bd46;',$tmphtml);
  285. }
  286. <!--{else}-->
  287. <!--{eval
  288. echo str_replace('value=""','value="'.$value[ufielddata][$fieldid].'"',$htmls[$fieldid]);
  289. }-->
  290. <!--{/if}-->
  291. <!--{else}-->
  292. <input id="activitypic_$fieldid" type="text" tabindex="1" value="" placeholder="{lang xj_event:qsrtpdz}" class="px" name="$fieldid" onblur="if(!this.value.match(/^https?:\/\/.+\/.+\.(jpg|png|gif|jpeg|bmp)$/i)){ $('showerror_$fieldid').innerHTML='{lang xj_event:tpdzcw}';}else{ $('showerror_$fieldid').innerHTML='&nbsp;';}">
  293. <!--{/if}-->
  294. </div>
  295. <!--{/if}-->
  296. <!--{/loop}-->
  297. <!--{/if}-->
  298. <!--{if !empty($myuserfield)}-->
  299. <!--{loop $value[myuserfield] $val}-->
  300. <div data-role="fieldcontain">
  301. <label for="textarea-1">{$val[title]}</label>
  302. {$val[html]}
  303. </div>
  304. <!--{/loop}-->
  305. <!--{/if}-->
  306. <div data-role="fieldcontain">
  307. <label for="textarea-1">{lang xj_event:liuyan}</label>
  308. <textarea name="message" maxlength="100" id="textarea-1">{$value[bmmessage]}</textarea>
  309. </div>
  310. </p>
  311. </div>
  312. <!--{/loop}-->
  313. </div>
  314. <button class="ui-btn ui-icon-plus ui-btn-icon-left" id="addbtn">{lang xj_event:zenjiayiren}</button>
  315. <div style="height:20px;"></div>
  316. <button class="ui-btn ui-icon-edit ui-btn-icon-left" id="sumbitbtn">{lang xj_event:tijiaobaomin}</button>
  317. </div>
  318. </div>
  319. <div id="bmtemplate" style="display:none;">
  320. <!--{if $setting[session]}-->
  321. <div data-role="fieldcontain">
  322. <label for="select-native-1">{lang xj_event:huodongcc}:</label>
  323. <div class="xjselect">
  324. <input type="hidden" name="session" value="">
  325. <!--{loop $setting[session] $key $value}-->
  326. <span style="font-size: 14px; padding: 3px 12px; color:#fff; border-radius: 4px; margin-bottom: 5px; margin-right: 5px; float: left; font-weight: normal; text-shadow: none; background-color: #ccc;" data-value="$key">$value</span>
  327. <!--{/loop}-->
  328. <div style="clear:both;"></div>
  329. </div>
  330. </div>
  331. <!--{/if}-->
  332. <!--{if $setting[cost]}-->
  333. <div data-role="fieldcontain">
  334. <label for="select-native-2">{lang xj_event:baominglx}:</label>
  335. <select name="costclass" id="select-native-2">
  336. <!--{loop $setting[cost] $cvalue}-->
  337. <option value="{$cvalue[id]}" <!--{if $cvalue[id] == $value[ufielddata][costclass]}-->selected<!--{/if}-->>{$cvalue[cost_name]}</option>
  338. <!--{/loop}-->
  339. </select>
  340. </div>
  341. <!--{/if}-->
  342. <!--{if !empty($selectuserfield)}-->
  343. <!--{loop $selectuserfield $fieldid}-->
  344. <!--{if $settings[$fieldid][available]}-->
  345. <div data-role="fieldcontain">
  346. <label for="textarea-1">$settings[$fieldid][title]</label>
  347. <!--{if $settings[$fieldid][formtype] != 'file'}-->
  348. $htmls[$fieldid]
  349. <!--{else}-->
  350. <input id="activitypic_$fieldid" type="text" tabindex="1" value="" placeholder="{lang xj_event:qsrtpdz}" class="px" name="$fieldid" onblur="if(!this.value.match(/^https?:\/\/.+\/.+\.(jpg|png|gif|jpeg|bmp)$/i)){ $('showerror_$fieldid').innerHTML='{lang xj_event:tpdzcw}';}else{ $('showerror_$fieldid').innerHTML='&nbsp;';}">
  351. <!--{/if}-->
  352. </div>
  353. <!--{/if}-->
  354. <!--{/loop}-->
  355. <!--{/if}-->
  356. <!--{if !empty($myuserfield)}-->
  357. <!--{loop $myuserfield $value}-->
  358. <div data-role="fieldcontain" class="myuserfield">
  359. <label for="textarea-1">{$value[title]}</label>
  360. {$value[html]}
  361. </div>
  362. <!--{/loop}-->
  363. <!--{/if}-->
  364. <div data-role="fieldcontain">
  365. <label for="textarea-1">{lang xj_event:liuyan}</label>
  366. <textarea name="message" maxlength="100" id="textarea-1"></textarea>
  367. </div>
  368. </div>
  369. </body>
  370. </html>