function prev(step){ var current = $('.stepstat li.current'); current.prev().removeClass('unactivated').addClass('current'); current.removeClass('current').addClass('unactivated'); $('.header #title'+step).addClass('hidden').prev().removeClass('hidden'); $('#content'+step).addClass('hidden').prev().removeClass('hidden'); $('#stepstatbg').attr('class','stepstatbg stepstat'+(step-1)); } function next(step){ if(step ==4){ $('form#create').submit(); return ; } var current = $('.stepstat li.current'); current.next().removeClass('unactivated').addClass('current'); current.removeClass('current').addClass('unactivated'); $('.header #title'+step).addClass('hidden').next().removeClass('hidden'); $('#content'+step).addClass('hidden').next().removeClass('hidden'); $('#stepstatbg').attr('class','stepstatbg stepstat'+(step+1)); if(step == 3){ preview(); } } function bindSelected(data){ $.each( data, function(i, field){ if(field.name.indexOf('hooks[') != -1){ if($('select[name="'+field.name+'"]').length){ $('select[name="'+field.name+'"]').val(field.value); } } }); } //验证表单 function checkForm(){ var form = $('form#create'); var url = checkUrl; $.post(url,form.serialize(),function(data){ if(data.status){ $('#content1 label').removeClass('error'); $('#content1 :text').parent().find('span').remove(); next(1); }else{ $('#content1 label').removeClass('error'); $('#content1 :text').parent().find('span').remove(); $.each(data.data,function(i,v){ $('#content1 label[for="'+i+'"]').addClass('error'); $('#content1 :text[name="'+i+'"]').parent().append('<span class="error">'+v+'</span'); }) } },'json'); } //预览 function preview(){ var form = $('form#create'); var data = form.serializeArray(); var url = previewUrl; $.post(url,form.serialize(),function(data){ // editor.setOption("theme", 'monokai'); editor.setValue(data); }); bindSelected(data); return data; } //动态添加元素,并绑定删除事件 function add_form_btns(name){ $(name).click(function(){ var html = $(this).parent().parent(); var _class = html.attr('class'); var clone = html.clone(); //表单清空 clone.find('input[type="text"]').each(function(){ $(this).removeAttr('value'); }); clone.find('a.add').replaceWith('<a class="del">删除</>'); var clone_html = clone.html().replace(/\[0\]/g,'['+form_hooks_count+']'); clone_html += '<td><a class="ico-top" href="javascript:;"></a>'; clone_html += '<a class="ico-btm" href="javascript:;"></a></td>'; clone = $('<tr class="group moveable">'+clone_html+'</tr>'); clone.find('select[name^="hooks["]').val(''); clone.find('a.del').click(function(){ $(this).parent().parent().detach(); preview(); }); clone.find('a[class^="ico"]').click(function(){ var _current_element = $(this).parents('tr'); if($(this).attr('class') == 'ico-top'){ if(_current_element.prev('.moveable').length >0){ _current_element.insertBefore(_current_element.prev('.moveable')); }else{ ui.error('已经是最前面了') } }else{ if(_current_element.next('.moveable').length >0){ _current_element.insertAfter(_current_element.next('.moveable')); }else{ ui.error('已经是最后面了') } } }); $('tr.'+_class).last().after(clone); form_hooks_count++; }); } //动态添加插件方法 function add_form_btns2(name){ $(name).click(function(){ var html = $(this).parent().parent(); var _class = html.attr('class'); var clone = html.clone(); //表单清空 clone.find('input[type="text"]').each(function(){ $(this).removeAttr('value'); }); clone.find('textarea').text(''); clone.find('a.add').replaceWith('<a class="del">删除</>'); var clone_html = clone.html().replace(/\[0\]/g,'['+form_hooks_methods_count+']'); clone_html += '<td><a class="ico-top" href="javascript:;"></a>'; clone_html += '<a class="ico-btm" href="javascript:;"></a></td>'; clone = $('<tr class="group2 moveable">'+clone_html+'</tr>'); clone.find('a.del').click(function(){ $(this).parent().parent().detach(); var data= preview(); generateOptions('table tr.group select.method','table tr.group2 .hook_method[value!=""]'); bindSelected(data); }); clone.find('a[class^="ico"]').click(function(){ var _current_element = $(this).parents('tr'); if($(this).attr('class') == 'ico-top'){ if(_current_element.prev('.moveable').length >0){ _current_element.insertBefore(_current_element.prev('.moveable')); }else{ ui.error('已经是最前面了') } }else{ if(_current_element.next('.moveable').length >0){ _current_element.insertAfter(_current_element.next('.moveable')); }else{ ui.error('已经是最后面了') } } generateOptions('table tr.group select.method','table tr.group2 .hook_method[value!=""]'); bindSelected(data); }); $('tr.'+_class).last().after(clone); form_hooks_methods_count++; }); } //修改时的删除元素 function del_form_btns(name){ $(name).click(function(){ $(this).parent().parent().detach(); generateOptions('table tr.group select.method','table tr.group2 .hook_method[value!=""]'); }); } function generateOptions(name,source){ var html = '<option value="">请选择</option>'; $(source).each(function(i,v){ html+= '<option value="'+v.value+'">'+v.value+'</option>'; }); $(name).html(html); } function pop(e){ tr = $(e).parents('tr'); temp_textarea = tr.find(':text[name$="[name]"]'); name = temp_textarea.val(); temp_textarea = tr.find('textarea[name$="[content]"]'); $.thinkbox.load(windowUrl,{title:' function '+ name +' ($param)'}); } function pop2(e){ td = $(e).parent(); temp_textarea = td.find('textarea'); name = temp_textarea.attr('name'); $.thinkbox.load(windowUrl,{title:' function '+ name +' ($param)'}); } function save(e,item){ temp_textarea.val(e.getValue()); cancel(item); preview(); } function cancel(e){ $.thinkbox.get(e).hide(); }