2011-12-14 2 views
6

Это не похоже, что это должно быть слишком сложно сделать, но я в спешке, и я искал простой ответ. Мне нужно отправить форму на загрузку страницы. Это моя функция отправки AJAX, которая работает нормально. Мне просто нужно выяснить, как запустить его при загрузке страницы.Как инициировать отправку формы при загрузке страницы с использованием JQuery

Любая помощь очень ценится!

$("form#seller-agreement-form").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below  
     $.ajax({ 
      type: "POST", 
      url: "http://www2.myurl.com/formhandler", 
      data: "email="+ email + "&status=" + status, 
      success: function(){ 
       $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

      } 
     }); 
    return false; 
    }); 

ответ

6

если вы звоните $().submit() это вызывает действие; $().submit(function) привязывает обработчик к событию отправки.

Вы можете пропустить submit и просто вызвать метод ajax напрямую.

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "http://www2.myurl.com/formhandler", 
     data: "email="+ email + "&status=" + status, 
     success: function(){ 
      $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

     } 
    }); 
}); 
0

Вызов $("#seller-form").submit() на форме, и это вызовет представить событие.

0

Почему бы не сделать

function AjaxCall() { 
    // we want to store the values from the form input box, then send via ajax below  
    $.ajax({ 
     type: "POST", 
     url: "http://www2.myurl.com/formhandler", 
     data: "email=" + email + "&status=" + status, 
     success: function() { 
      $('form#seller-agreement-form').hide(function() { 
       $('div#output').fadeIn(); 
      }); 

     } 
    }); 
    return false; 
} 

AjaxCall(); 

$("form#seller-agreement-form").submit(AjaxCall); 
3

Чтобы действительно отправить форму на странице загрузки, можно было бы написать что-то вроде

$(function() { 
    $('#seller-agreement-form').submit(); 
}); 

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

function postForm() { 
    $.ajax({ 
     type: "POST", 
     url: "http://www2.myurl.com/formhandler", 
     data: "email="+ email + "&status=" + status, 
     success: function(){ 
      $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

     } 
    }); 
} 

$("form#seller-agreement-form").submit(function() { 
    postForm(); 
    return false; 
}); 

$(function() { 
    postForm(); 
}); 
3
$(function() { 
    $("form#seller-agreement-form").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below  
     $.ajax({ 
      type: "POST", 
      url: "http://www2.myurl.com/formhandler", 
      data: "email="+ email + "&status=" + status, 
      success: function(){ 
       $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

      } 
     }); 
    return false; 
    }).trigger('submit'); 

}); 

Вы можете использовать функцию .trigger(), чтобы вызвать событие submit на форме. Я приковал звонки, поэтому форма должна быть выбрана только один раз. Обратите внимание, что перед запуском события submit необходимо установить обработчик событий submit.

Документация: http://api.jquery.com/trigger

+0

Ok. Это сработало, однако я, кажется, попался в бесконечный цикл представлений. –

+0

@ VaughnD.Taylor. Код выше не должен зацикливаться, после того как функция '.trigger()' вызывается обработчиком события 'submit', который не запускает событие' submit'. Таким образом, есть, вероятно, какой-то другой пользовательский код, который вы написали, который возился с потоком. – Jasper

+0

Это, скорее всего, цикл, потому что вы отправляете форму обратно себе. Вам может потребоваться установить блок if() вокруг .trigger() и пометить URL с параметром, чтобы он не опубликовал сообщение снова. – rkw

0

Использование JQuery trigger() функция для запуска представить событие в вашем document.ready случае

0

не уверен, если это то, что вы просите

$(document).ready(function() { 
    $("form#seller-agreement-form").submit(function() { 
     // we want to store the values from the form input box, then send via ajax below  
     $.ajax({ 
      type: "POST", 
      url: "http://www2.myurl.com/formhandler", 
      data: "email="+ email + "&status=" + status, 
      success: function(){ 
       $('form#seller-agreement-form').hide(function(){$('div#output').fadeIn();}); 

      } 
     }); 
    return false; 
    }); 
}); 
Смежные вопросы