2012-12-12 23 views
0

美好的一天感謝任何答案。jquery.forms + colorbox + dataTable

我不是一個專家在這裏,我問google了很多,但在這裏我真的不知道該怎麼辦...

我與顏色框,jquery.forms和jQuery工作。 dataTable插件同時在一張桌子上。

在這裏我有兩種形式,一種用於創建用戶,另一種用於編輯。 如創建用戶鏈接是關閉表的腳本工作得很好。 問題出在編輯用戶,表中的鏈接,這個內容來自ajax,colorbox部分工作,實現它然後出現在colorbox窗口中,但是其中的任何腳本,在「onComplete」函數中不再起作用。 我不知道如何從這裏做什麼,我沒有很好的備份這個集成,一些文章或問題標記只使用{frame:true}的colorbox和dataTable。

這裏的功能代碼:

這是不工作區域

function cargarColorbox(){ 
    $('.edit').colorbox({ 
     OnComplete:function(){ //this is not workin 
      var formulario = $('#usuarios_edit'); 
      var options = {success: mostrarRespuesta2}; 
      $("#update_info").text('llegan js'); 
      formulario.ajaxForm(options); 
      //Implementamos los listeners del formulario    
      function mostrarRespuesta2(responseText){ 
       $("#update_info").removeClass(); 
       $("#update_info").html(responseText); 
      } 
     } 
    }); 
} 


function initTable() 
    { 
     return $('#DataTable').dataTable({ 
     "sScrollY": "200px", 
     "bPaginate": true, 
     "bRetrieve": true, 
     "bProcessing": false, 
     "sAjaxSource": 'usuarios/listado', 
     "fnInitComplete": function(){ 
      cargarColorbox(); 
     }, 
    }); 
} 


function RefreshTable(tableId, urlData) 
    { 

     $.getJSON(urlData, null, function(json) 
     { 
     table = $(tableId).dataTable(); 
     oSettings = table.fnSettings(); 

     table.fnClearTable(this); 

     for (var i=0; i<json.aaData.length; i++) 
     { 
      table.oApi._fnAddData(oSettings, json.aaData[i]); 
     } 

     oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); 
     table.fnDraw(); 
     }); 
    } 

這是工作區

$(document).ready(function() { 
    initTable(); 
    $('#add').live('click', function(e){ 
     e.preventDefault(); 
    }); 

}); 

jQuery(document).ready(function(){ 

     $('#add').colorbox({onComplete:function(){ 
      //recogemos las variables que necesitaremos 
      var formulario = $('#usuarios_add'); 
      var pass1 = $('#usuarios_pass'); 
      var pass2 = $('#usuarios_pass2'); 
      var email = $('#usuarios_email'); 
      var confirmacion = "coinciden"; 
      var longitud = "La contraseña debe estar formada entre 6-15 carácteres (ambos inclusive)"; 
      var negacion = "No coinciden las contraseñas"; 
      var vacio = "La contraseña no puede estar vacía"; 
      var options = {success: mostrarRespuesta}; 

      formulario.ajaxForm(options); 

      pass2.keyup(function(){ 
       coincidePassword(); 
      }); 

      email.focusout(function(){ 
       validar_email(); 
      }); 

       function mostrarRespuesta(responseText){ 
        $("#update_info").removeClass(); 
        $("#update_info").html(responseText); 
       } 

       function coincidePassword(){ 
        var val1 = pass1.val(); 
        var val2 = pass2.val(); 

        if(val1 != val2){ 
         $('#update_info').text(negacion).addClass('bad'); 
        } 

        if(val1.length==0 || val2==""){ 
         $('#update_info').text(vacio).addClass('bad'); 
        } 

        if(val1.length<6 || val2.length>15){ 
         $('#update_info').text(longitud).addClass('bad'); 
        } 

        if(val1.length!=0 && val1==val2){ 
         $('#update_info').text(confirmacion).removeClass('bad').addClass('good'); 
        } 
       } 

       function validar_email() 
       { 
        valor = email.val(); 

        var filter = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/; 

        if(filter.test(valor)){ 
         $('#update_info').text('El formato del E-mail es correcto').removeClass('bad').addClass('good'); 
        } 
        else{ 
         $('#update_info').text('Ese no es un formato de E-mail').addClass('bad'); 

        } 
       } 

     }, onClosed:function(){ 
      RefreshTable(table, 'usuarios/listado'); 
      initTable(); 
     } 
     }); 
    }); 
+2

將'OnComplete'更改爲'onComplete'。 –

+0

好神,謝謝..我簡直不敢相信它就是這樣的 - –

+0

我會加上這個作爲答案。 –

回答

1

OnCompleteonComplete不同。
您應該將其修復爲onComplete

+0

感謝里卡多羅曼,在最後我必須修改腳本,但功能完全,可能需要波蘭語,但如果有人需要一個集成的例子,這裏是它... http://pastebin.com/wcSxG9ac –