$(this).remove() не работает на форме с ajaxForm()
Я хочу, чтобы по сабмиту форма самоудалилась. Но это нужно сделать
при срабатывании ajaxForm: <form class="test-form"> <button class="test-button">SUBMIT</button> </form> $(".test-form").ajaxForm(function() { $(this).remove(); }); И почему-то не получается. Можно сделать так: $(".test-button").on('click', function() { $(this).parent().remove(); }); Но этот вариант не подходит, нужно сделать удаление именно с ajaxForm. Еще можно сделать так: $(".test-form").ajaxForm(function() { $(".test-form").remove(); }); И тогда тоже всё пучком, но у меня много форм и мне нужно удалять только ту, где произошел сабмит, то есть нужен $(this), но с ним почему-то удаления формы не происходит? |
а что в консоль падает, ошибок нет?
$(".test-form").ajaxForm(function() { console.log(this); $(this).remove(); }); |
ошибок нет, в консоли:
[Object, jquery: "2.0.3", constructor: function, init: function, selector: "", toArray: function…] |
а, это было для console.log($(this));
для console.log(this) выдает вот это: Object {url: "http://localhost:8080/fileupload/", type: "POST", isLocal: false, global: true, processData: true…} |
$('.test-form').submit(function() { $(this).remove(); return false; }); |
Цитата:
|
ну а если так:
$(".test-form").ajaxForm(function() { $(".test-form").remove(); }); |
я может не понял чё вам нужно, но формы по клику удаляются
http://codepen.io/anon/pen/pwaLu |
Цитата:
|
мм. па попробуйте в консоль вот так вывести:
$(".test-form").ajaxForm(function() { console.log($(this)[0]); }); по идеи должен вернуть dom элемент |
Цитата:
|
Цитата:
accepts: Object async: true contentType: "application/x-www-form-urlencoded; charset=UTF-8" contents: Object converters: Object crossDomain: false data: "" dataTypes: Array[2] flatOptions: Object global: true hasContent: true iframeSrc: "about:blank" isLocal: false jsonp: "callback" jsonpCallback: function () { processData: true responseFields: Object success: function (data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg type: "POST" url: "http://localhost:8080/fileupload/" xhr: function () { __proto__: Object То есть выводит тоже, что и при console.log(this); То есть в случае с ajaxForm (this) == $(this) ?? И как мне тогда выцепить форму, в которой произошел сабмит? |
аа. он вам не dom возвращает, а аякс объект скорей, поэтому и косяк.
тогда замыканием можно сделать |
Цитата:
Цитата:
|
var test-form = $(".test-form"); $(test-form).ajaxForm(function(ths) { return function(){ console.log(ths); } }(test-form)); |
Цитата:
|
Цитата:
|
ну это плагин и хз что конкретно он там возвращает
дайте id-шники формам и удаляйте по ним |
Н-да, походу радость была не долгой. Код с замыканием удаляет все формы, а не ту, где произошел submit :(
var testForm = $(".test-form"); $(testForm).ajaxForm(function(frm) { return function(){ frm.remove(); } }(testForm)); Цитата:
|
я честно с таким плагином не сталкивался, но может он какие то параметры передает в функцию?
var testForm = $(".test-form"); $(testForm).ajaxForm(function(p1, p2, p3) { console.log(p1); console.log(p2); console.log(p3); }); |
проверил сам лично, работает!!!
$(".form").each(function(index, obj) {console.log(obj) $(obj).ajaxForm(function(obj) { return function () { $(obj).remove(); } }(obj)); }); |
Цитата:
uploadProgress : function(event, position, total, percentComplete)даже есть параметр $form, это не элемент формы, а непонятно вообще что, короче я в тупике :-E |
|
Цитата:
|
та лан, все когда то нулями были..
|
Часовой пояс GMT +3, время: 21:57. |