良い一日、答えてくれてありがとう。
私はここの専門家ではありません。私はグーグルにたくさん尋ねていましたが、ここで私は本当に何をすべきかわかりません...
私は、カラーボックス、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();
}
});
});