0

良い一日、答えてくれてありがとう。

私はここの専門家ではありません。私はグーグルにたくさん尋ねていましたが、ここで私は本当に何をすべきかわかりません...

私は、カラーボックス、jquery.forms、および jquery.dataTable プラグインをテーブルで同時に使用しています。

ここには、ユーザー作成用と編集用の 2 つのフォームがあります。ユーザーリンクの作成など、スクリプトは完全に正常に機能します。問題は、ユーザーの編集、テーブル内のリンク、このコンテンツは ajax からのものであり、カラーボックスは部分的に機能し、達成されてからカラーボックス ウィンドウに表示されますが、「onComplete」関数内のスクリプトは機能しなくなりました。ここから何をすればよいかわかりません。この統合のための多くのバックアップはありません。いくつかの記事や疑問符は、colorbox と dataTable に {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 に答える