0

美好的一天感谢您的任何回答。

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

我在一个表上同时使用 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();
        }
        });
    });
4

1 回答 1

1

OnComplete不同于onComplete.
您应该将此修复为onComplete.

于 2012-12-12T17:16:53.930 回答