javascript / set_to_modal_other
☑
0
PQT
22.05.18
✎
04:51
ПОЧЕМУ РАБОТАЕТ ТАК:
function set_to_modal_other(what){
$("#target").submit(function() {
$.ajax({
type: "POST",
url: what,
data: $(this).serialize(),
cache: false,
success: function(html){
$('#modal_other').html(html);
}
}).done(function() {
$("#modal_other").trigger("reset");
set_to_modal_other(what);
});
return false;
});
return true;
}
НО НЕ РАБОТАЕТ ТАК:
function ajax_modal_other(what){
return $.ajax({
type: "POST",
url: what,
data: $(this).serialize(),
cache: false,
success: function(html){
$('#modal_other').html(html);
}
});
}
function set_to_modal_other(what){
$("#target").submit(function() {
ajax_modal_other(what).done(function() {
$("#modal_other").trigger("reset");
set_to_modal_other(what);
});
return false;
});
return true;
}
1
PQT
22.05.18
✎
04:54
я 1Сник, а в JS дилетант, но не могу понять почему лыжи не едут
2
Asmody
22.05.18
✎
07:04
(1) Потому что this в javascript - это очень "волшебная" штука.
Тебе во втором случае надо $(this).serialise() вынести из внутренней функции
3
PQT
22.05.18
✎
08:39
ok, понял, псб!
4
PQT
22.05.18
✎
08:57
помогло, длиннющая портянка сокрадилась до:
function modalOnIndex(){
$(".modal_ajax").submit(function() {
var ourButton = this[0].name;
document.getElementById('click').click();
if(ourButton == 'jobAdmin' || ourButton == 'jobRepairer'
|| ourButton == 'jobRetailer' ) {
ajax_modal_other("includes/job_application.php",$(this)).done(function() {
$(".modal_other").trigger("reset");
});
}else if(ourButton == 'user_reg'){
ajax_modal_other("includes/user_reg.php",$(this)).done(function() {
$("#modal_other").trigger("reset");
return set_to_modal_other("includes/user_reg.php");
});
}else if(ourButton == 'user_login'){
ajax_modal_other("includes/user_login.php",$(this)).done(function() {
$("#modal_other").trigger("reset");
return set_to_modal_other("includes/user_login.php");
});
};
return false;
alert('ой... чтото пошло не так)');
return false;
});
}
function ajax_modal_other(what,where){
return $.ajax({
type: "POST",
url: what,
data: where.serialize(),
cache: false,
success: function(html){
$('#modal_other').html(html);
}
});
}
function set_to_modal_other(what){
$("#target").submit(function() {
ajax_modal_other(what, $(this)).done(function() {
$("#modal_other").trigger("reset");
set_to_modal_other(what);
});
return false;
});
return true;
}
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший