Chcę przesłać formularz za pomocą jQuery. Czy ktoś może podać kod, wersję demo lub przykładowy link?Wyślij formularz za pomocą jQuery
Odpowiedz
Z instrukcji: jQuery Doc
$("form:first").submit();
Będziesz musiał użyć $("#formId").submit()
.
Generalnie wywołasz to z poziomu funkcji.
Na przykład:
<input type='button' value='Submit form' onClick='submitDetailsForm()' />
<script language="javascript" type="text/javascript">
function submitDetailsForm() {
$("#formId").submit();
}
</script>
można uzyskać więcej informacji na ten temat na Jquery website.
$("form:first").submit();
Zobacz events/submit.
Można również skorzystać z formularza plugin jquery do przedstawienia za pomocą ajax aswell:
To zależy od tego, czy złożenie formularza normalnie lub za pośrednictwem wywołania AJAX. Możesz znaleźć wiele informacji na jquery.com, w tym dokumentacji z przykładami. Aby przesłać formularz w normalny sposób, skorzystaj z metody submit()
na tej stronie. W przypadku AJAX istnieje wiele różnych możliwości, chociaż prawdopodobnie warto zastosować metody ajax()
lub post()
. Zauważ, że post()
jest po prostu wygodnym sposobem wywoływania metody ajax()
z uproszczonym i ograniczonym interfejsem.
Najważniejszym zasobem, którego używam każdego dnia, jest zakładka: How jQuery Works. Zawiera samouczki dotyczące korzystania z jQuery, a nawigacja po lewej zapewnia dostęp do całej dokumentacji.
Przykłady:
normalnych
$('form#myForm').submit();
AJAX
$('input#submitButton').click(function() {
$.post('some-url', $('form#myForm').serialize(), function(data) {
... do something with response from server
},
'json' // I expect a JSON response
);
});
$('input#submitButton').click(function() {
$.ajax({
url: 'some-url',
type: 'post',
dataType: 'json',
data: $('form#myForm').serialize(),
success: function(data) {
... do something with the data...
}
});
});
Uwaga że metody ajax()
i post()
powyżej, są równoważne. Istnieją dodatkowe parametry, które można dodać do wniosku ajax()
do obsługi błędów, itp
Brakowało mi metody serializacji. Oczywiście spojrzałem na jQuery.com, ale ich dokumenty na '$ .post' jawnie dekonstruują i rekonstruują formularz w celu wygenerowania danych do przesłania. Dzięki! – nomen
jeśli mam trochę danych gotowych Chcę dodać do żądania postu (nie ajax, formularz Wyślij prośbę o wpis) przed wysłaniem, jak mam to zrobić? –
@AlexanderSupertramp - w powyższym przykładzie dane są wysyłane jako parametry formularza zakodowane w url. Możesz po prostu dołączyć dane jako dodatkowe parametry formularza. '$ ('form # MyForm'). serialize() + '& newData =' + newData + '& moreData =' + moreData'. Uwaga: te dwa ostatnie mogą wymagać zakodowania adresu URL za pomocą 'encodeURIComponent()'. LUB - możesz zmienić kodowanie JSON na obu końcach, ale musisz umieścić dane formularza w strukturze danych JavaScript z dodatkowymi danymi i serializować je. W takim przypadku prawdopodobnie użyjesz 'serializeArray' na formularzu i scalisz swoje pozostałe dane. – tvanfosson
w jQuery wolałbym następujące:
$("#form-id").submit()
ale potem znowu, tak naprawdę nie trzeba wykonywać, że jQuery zadanie - wystarczy użyć regularnych javascript:
document.getElementById("form-id").submit()
Zgadzam się. Ładowanie jQuery za darmo nie jest praktyczne. Każda technologia ma swoje cele. – erm3nda
z jakiegoś powodu, wersja jquery nie działa, jednak wersja getElementById działa, dziwne. – windmaomao
@windmaomao czy podałeś jQuery na swojej stronie internetowej?Być może jednak musisz użyć jQuery istead of $ aswell - polecam używanie zwykłego rozwiązania JS, chyba że masz już jQuery. – gernberg
mam również stosowane następujące złożyć formularz (bez faktycznego przekazania go) za pośrednictwem Ajax:
jQuery.get("process_form.php"+$("#form_id").serialize(), {},
function() {
alert("Okay!");
});
to nie jest coś takiego jak submit(). dla jednej rzeczy submit() używa semantyki POST, używasz GET –
Polecam ogólne rozwiązanie, więc nie trzeba dodawać kodu do każdego formularza. Użyj wtyczki jquery form (http://jquery.malsup.com/form/) i dodaj ten kod.
$(function(){
$('form.ajax_submit').submit(function() {
$(this).ajaxSubmit();
//validation and other stuff
return false;
});
});
function form_submit(form_id,filename){
$.post(filename,$("#"+form_id).serialize(), function(data){
alert(data);
});
}
będzie zamieszczać dane formularza na podanej nazwy pliku poprzez AJAX.
jQuery("a[id=atag]").click(function(){
jQuery('#form-id').submit();
**OR**
jQuery(this).parents("#form-id").submit();
});
można zrobić to tak:
$('#myform').bind('submit', function(){ ... });
pamiętać, że w programie Internet Explorer są problemy z dynamicznie tworzonych form. Postać stworzona tak nie złoży w IE (9):
var form = $('<form method="post" action="/test/Delete/">' +
'<input type="hidden" name="id" value="' + myid + '"></form>');
$(form).submit();
Aby dostać pracę w IE tworzyć element formularz i dołączyć go przed złożeniem tak:
var form = document.createElement("form");
$(form).attr("action", "/test/Delete")
.attr("method", "post");
$(form).html('<input type="hidden" name="id" value="' + myid + '" />');
document.body.appendChild(form);
$(form).submit();
document.body.removeChild(form);
Tworzenie formularza podobnego w przykładzie 1, a następnie dołączenie nie będzie działać - w IE9 zgłasza błąd JScript DOM Exception: HIERARCHY_REQUEST_ERR (3)
podpory Tommy w @https://stackoverflow.com/a/6694054/694325
to prześle formularz z preloader:
var a=$('#yourform').serialize();
$.ajax({
type:'post',
url:'receiver url',
data:a,
beforeSend:function(){
launchpreloader();
},
complete:function(){
stopPreloader();
},
success:function(result){
alert(result);
}
});
i'have jakiś podstęp, aby post formularz danych zreformowany metodą losową http://www.jackart4.com/article.html
czy mógłbyś opublikować zaktualizowany link? Powyższy link już nie działa. – Chris22
IE trick dynamicznych formach:
$('#someform').find('input,select,textarea').serialize();
Rozwiązania do tej pory wymagają znajomości identyfikatora formularza.
użyć tego kodu, aby wysłać formularz bez konieczności znać ID:
function handleForm(field) {
$(field).closest("form").submit();
}
Na przykład, jeśli były chcąc obsłużyć zdarzenia kliknij na przycisku, można użyć
$("#buttonID").click(function() {
handleForm(this);
});
można go używać tak:
$('#formId').submit();
LUB
document.formName.submit();
gdy masz już postać, która powinna teraz pracować z jQuery - ajax/słupek teraz możesz:
- powiesić na przedstawienia - przypadku formularza
- zapobiec domyślną funkcjonalność przedstawić
robić własne rzeczy
$(function() { //hang on event of form with id=myform $("#myform").submit(function(e) { //prevent Default functionality e.preventDefault(); //get the action-url of the form var actionurl = e.currentTarget.action; //do your own request an handle the results $.ajax({ url: actionurl, type: 'post', dataType: 'application/json', data: $("#myform").serialize(), success: function(data) { ... do something with the data... } }); }); });
Należy pamiętać, że aby funkcja serialize()
działała w powyższym przykładzie, wszystkie elementy formularza muszą mieć zdefiniowany atrybut name
.
Przykład formularza:
<form id="myform" method="post" action="http://example.com/do_recieve_request">
<input type="text" size="20" value="default value" name="my_input_field">
..
.
</form>
@PtF - dane są przesyłane przy użyciu POST w tej próbce, więc to oznacza, że można uzyskać dostęp do swoich danych poprzez
$_POST['dataproperty1']
, gdzie dataproperty1 jest "nazwa zmiennej" w twoim jsonie.
tutaj próbka składnia jeśli używasz CodeIgniter:
$pdata = $this->input->post();
$prop1 = $pdata['prop1'];
$prop1 = $pdata['prop2'];
Dlaczego używasz ponownie selektora formularza, dlaczego nie chcesz ponownie użyć samego elementu formularza? –
tak, możesz to również zrobić:
Dzięki za zaznaczenie, że atrybut "nazwa" musi być zdefiniowany – ccalboni
Użyj go, aby przesłać formularz przy użyciu jQuery. Oto link http://api.jquery.com/submit/
<form id="form" method="post" action="#">
<input type="text" id="input">
<input type="button" id="button" value="Submit">
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#button").click(function() {
$("#form").submit();
});
});
</script>
Chociaż jest to stary post, warto dodać przycisk "button" do przycisku, aby upewnić się, że formularz nie zostanie przesłany (ponieważ nie wszystkie przeglądarki traktują przyciski bez typów w ten sam sposób). – Mikey
@Mikey Dzięki za sugestię. – ChintanThummar
Należy pamiętać, że jeśli już zainstalowany dołączania detektor zdarzeń dla swojej postaci, wywołanie innner przedłożenia()
jQuery('#<form-id>').submit(function(e){
e.preventDefault();
// maybe some validation in here
if (<form-is-valid>) jQuery('#<form-id>').submit();
});
nie praca, ponieważ próbuje aby zainstalować nowy detektor zdarzeń dla zdarzenia przesyłania formularza (które nie powiedzie się). Więc trzeba acces Element HTML sam (unwrap z jQquery) i wywołać submit() na tym elemencie bezpośrednio:
jQuery('#<form-id>').submit(function(e){
e.preventDefault();
// note the [0] array access:
if (<form-is-valid>) jQuery('#<form-id>')[0].submit();
});
Jeśli przycisk znajduje się pomiędzy znacznikami formie, wolę tę wersję:
$('.my-button').click(function (event) {
var $target = $(event.target);
$target.closest("form").submit();
});
Moje podejście nieco inny Zmień przycisk do przedstawienia przycisk, a następnie kliknij
$("#submit").click(function(event) {
$(this).attr('type','submit');
$(this).click();
});
Taki przydatny dzięki @NaveenDA –
- 1. Wyślij formularz za pomocą HTTPURLConnection
- 2. Przechwyć wyślij formularz z jQuery
- 3. Braintree Drop-in UI - wyślij formularz za pomocą AJAX
- 4. Wyślij formularz za pomocą AJAX w Asp.Net mvc 4
- 5. HTML: Wyślij formularz za pomocą przycisku wyboru opcji radiowej
- 6. Wyślij formularz bez JavaScriptu
- 7. jQuery, prześlij formularz za pomocą przycisku
- 8. Zapisywanie danych za pomocą posta jQuery ajax z formularzem Wyślij
- 9. PHP, HTML: Wyślij formularz automatycznie
- 10. Jak symulować składanie formularza za pomocą jQuery?
- 11. jQuery ajax, wyślij formularz z plikiem typu wejściowego i Json
- 12. Pokaż ładowanie gif po kliknięciu formularza Wyślij za pomocą jQuery
- 13. Dlaczego formularz Wyślij otwiera nowe okno/kartę?
- 14. Formularz Wyślij Wykonaj JavaScript Best Practice?
- 15. Formularz Wyślij przy użyciu Div onClick
- 16. Wyślij wiadomość e-mail za pomocą json'a
- 17. Wyślij żądanie HTTP ręcznie za pomocą gniazda
- 18. Twitter: wyślij bezpośrednią wiadomość za pomocą skryby
- 19. Wyślij zagnieżdżony JSON za pomocą AFNetworking
- 20. Ładowanie gravatar za pomocą jquery
- 21. Jak zmienić zawartość Span za pomocą jQuery?
- 22. mechanize wybierz formularz za pomocą id
- 23. Jak złożyć formularz http za pomocą C#
- 24. Jak wysłać formularz logowania za pomocą jsoup?
- 25. Jak wyśrodkować formularz za pomocą BootStrap?
- 26. Jak przetwarzać formularz za pomocą CodeIgniter
- 27. Formularz wypełnienia za pomocą danych z Facebooka
- 28. Jak przesłać formularz za pomocą PhantomJS?
- 29. Zachowanie stanu modelu za pomocą polecenia Wyślij/Przekieruj/Uzyskaj
- 30. jQuery: Usuwanie Formularz Wejścia
to ciasto złożyć formularz „id” niż znalezienie pierwszy formularz i przesłać go. jednak będzie to działa idealnie, jeśli jest tylko jedna forma na raz. – ChintanThummar