Как использовать $ (это) в плагине jquery ajaxform - PullRequest
1 голос
/ 21 марта 2011

У меня есть 3 формы в похожих полях, используя ajaxform.Я хочу, чтобы при обновлении формы она обновляла только родительский набор полей.что происходит сейчас, потому что у меня нет переменной $ (this), я не могу указать ajaxform, для которой я хочу обновить только отправленную форму:

$(".toggle-form-submit").parents("form").ajaxForm({
  dataType: 'html',
  success: function(html) {
    var myForm = $(this);
    console.log(myForm);
    if(myForm.parents("fieldset").find(".replaceable").length) {
      updateReplaceableAndClearAndCloseFormWithin(myForm.parents("fieldset"), html);
    } else {
      longPanelUpdateReplaceableAndClearAndCloseFormWithin(myForm.parents("fieldset"), html);
    }
    if( $(".test-categories-list").length) {
      initSortableTestCases();
    }
  }
});

Очевидно, myForm является объектом ответа.что я хочу, так это селектор jquery для текущей формы, чтобы он мог найти своих родителей.Я не могу установить переменную в экземпляре ajaxform, так где я должен установить $ (this) / myForm?

1 Ответ

3 голосов
/ 21 марта 2011

Предполагая, что вы используете этот плагин формы jQuery Ajax, 4-м аргументом метода успеха будет обернутая форма jQuery, для которой действовали:

http://jquery.malsup.com/form/#options-object

Так что это должно работать:

$(".toggle-form-submit").parents("form").ajaxForm({
  dataType: 'html',
  success: function(html, status, xhr, myForm) {    
  console.log(myForm);
  if(myForm.parents("fieldset").find(".replaceable").length) {
    updateReplaceableAndClearAndCloseFormWithin(myForm.parents("fieldset"), html);
  } else {
    longPanelUpdateReplaceableAndClearAndCloseFormWithin(myForm.parents("fieldset"),     html);
  }
  if( $(".test-categories-list").length) {
    initSortableTestCases();
  }
 }
});
...