jquery.forms + colorbox + dataTable



美好的一天,谢谢你的任何回答。

不是这里的专家,我问了很多谷歌,但在这里我真的不知道该怎么办......

我正在一个表格上同时使用colorbox,jquery.forms和jquery.dataTable插件。

在这里,我有两个表单,一个用于创建用户,一个用于编辑。例如创建用户链接不在表上,脚本工作得很好。问题在于编辑用户,表中的链接,此内容来自 Ajax,Colorbox 部分工作,实现它然后出现在 Colorbox 窗口中,但 "onComplete" 函数中的任何脚本都不再工作。我不知道从这里开始该怎么做,我没有为此集成进行很多备份,一些文章或问号仅使用 {frame:true} 表示颜色框和数据表。

以下是函数的代码:

这是非工作区

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();
        }
        });
    });
OnComplete

onComplete不同。
您应该将其修复为 onComplete .

最新更新