Javascript kullanarak bir form nasıl gönderilir?


190

theFormİçinde bir gönderme düğmesi ile aşağıdaki div olan kimliği olan bir form var:

<div id="placeOrder" 
     style="text-align: right; width: 100%; background-color: white;">
    <button type="submit" 
            class='input_submit' 
            style="margin-right: 15px;" 
            onClick="placeOrder()">Place Order
    </button>
</div>

Tıklandığında, işlev placeOrder()çağrılır. İşlev, yukarıdaki div'in innerHTML'sini "işleniyor ..." olarak değiştirir (bu nedenle gönder düğmesi artık gitmiştir).

Yukarıdaki kod çalışıyor, ama şimdi sorun form göndermek için alamıyorum! Ben bu placeOrder()fonksiyonu koyarak denedim :

document.theForm.submit();

Ama bu işe yaramıyor.

Formu nasıl gönderebilirim?


3
<form>Sayfanızda bir yerde bir etiket var .
Justin808

Kodda <form> görmüyorum.
12'de dotoree

1
ne demek istiyorsun: Fonksiyon, yukarıdaki div'in innerHTML'sini "işleniyor ..." olarak değiştirir (böylece gönder düğmesi artık yok olmuştur). ve bu mantığı paylaşmak ister misiniz? Bu arada bir gönderme düğmeniz varsa (name = send ile aşağı bir yerde), theform.submit () işlevi çalışmaz. Lütfen kodunuzda olduğu gibi <form> etiketi ekleyerek sorunuzu netleştirin. Sen kullanabilir jsfiddle.net
sakhunzai

5
... bir gönderme düğmeniz varsa (isim = gönder ile aşağı bir yerde) ... Bu benim sorunumu çözdü! <İnput type = "button" name = "gönder" ..., ancak yine de javascript'in formu göndermesini engelliyor.
Nikolay Ivanov

Yanıtlar:


136

nameFormunuzun niteliğini olarak ayarlayın, "theForm"kodunuz çalışır.


14
Bu bazıları için çok açık görünebilir, ancak adı ve kimliği "gönder" ile bir düğme vardı ve document.theForm.submit()bir hata bildirdi. Düğmem yeniden adlandırıldığında, kod mükemmel çalıştı.
Jonathan

1
@Jonathan Sahip olduğunuz düğmenin adı nedir? Coz, api.jquery.com/submit'e göre bir formun alt öğeleri, formun özellikleriyle çakışan girdi adlarını veya kimlikleri kullanmamalıdır.
keya

106

Kullanabilirsiniz...

document.getElementById('theForm').submit();

... ama yok değiştirin innerHTML. Sen formunu gizlemek ve ardından eklemek olabilir işleme ... span edecektir görünür yerinde.

var form = document.getElementById('theForm');

form.style.display = 'none';

var processing = document.createElement('span');

processing.appendChild(document.createTextNode('processing ...'));

form.parentNode.insertBefore(processing, form);

Formu nereye göndereceğinizi nasıl söylersiniz? Örneğin, benim durumumda, içeriğin bana e-posta ile gönderilmesini istiyorum
CodyBugstein

@Imray Muhtemelen sunucu tarafı kodunun bunu sizin için yapmasını istersiniz.
alex

@CodyBugstein action="/{controller}/{action-method}" method="post"göndermeye çalıştığınız formun niteliklerini ayarlar .
barnes

2
benim form adı printoffersForm olduğu gibi id aynıdır. document.getElementById('printoffersForm').submit();ama bana hata gönderme bir işlev değil verir
Madhuri Patel

@MadhuriPatel Gönderme düğmenize sahip olabilir misiniz?
Cevaba

37

Benim durumumda mükemmel çalışıyor.

document.getElementById("form1").submit();

Ayrıca, aşağıdaki gibi işlevde kullanabilirsiniz:

function formSubmit()
{
     document.getElementById("form1").submit();
} 

bu bir inputetiketten form değerleri gönderir mi?
simanacci

@roy Evet, giriş etiketlerinden form değerleri gönderir.
Chintan Thummar

2
@ChintanThummar ve daha sonra Document.getElementById ("form1") kullanarak Form gönderme işlemek . Onsubmit = function () {// Sayfayı yenilemeden // göndermek için Ajax Kodunu kullanabilirsiniz}
Shubham Kumar

Bunu denemedim ama verdiğimden daha meyilli görünüyor. Teşekkürler;)
Chintan Thummar

12
document.forms["name of your form"].submit();

veya

document.getElementById("form id").submit();

Bunlardan herhangi birini deneyebilirsiniz .. bu kesinlikle işe yarayacak ..


5

Bu eski bir yazı ama form nameiçinde etiketi kullanmadan formu göndermek için yaptığım şekilde bırakacağım :

HTML

<button type="submit" onClick="placeOrder(this.form)">Place Order</button>

JS

function placeOrder(form){
    form.submit();
}

Umarım bu çözüm başka birine yardımcı olabilir. TQ


4

HTML

<!-- change id attribute to name  -->

<form method="post" action="yourUrl" name="theForm">
    <button onclick="placeOrder()">Place Order</button>
</form>

JavaScript

function placeOrder () {
    document.theForm.submit()
}

4
Lütfen cevabınıza biraz açıklama ekleyin.
Sampada

Bu, halihazırda verilen cevapların kalitesini artırmaz.
Randy

Form tanımı için form adını gerçek html'de gösteren tek yanıt budur. Ayrıca, basit ve anlaşılır.
Tim Bird

2

Formunuzda herhangi bir kimlik yoksa ancak Form gibi bir sınıf adı varsa, aşağıdaki ifadeyi göndermek için kullanabilirsiniz:

document.getElementsByClassName("theForm")[0].submit();

yukarıda aynı sınıf adına sahip daha fazla form var mı?
Jack1987

0

Kullanıcıların giriş yaptıkları bilgilerle web sitemde gizli basit bir form kullanarak kolay bir çözüm buldum. Örnek Bir kullanıcının bu formda oturum açmasını istiyorsanız, aşağıdaki aşağıdaki forma böyle bir şey ekleyebilirsiniz.

<input type="checkbox" name="autologin" id="autologin" />

bir formu gizleyen ve bir bağlantıyı tıklayarak gönderen ilk kişi olduğumu biliyorum. Bilgileri içeren gizli bir form gönderen bağlantı vardır. Gizli form şifre metin alanında oturan şifreler ile web sitenizde otomatik giriş yöntemlerini sevmiyorsanız% 100 güvenli değil ...

Tamam iş burada. Diyelim ki $siteidhesap ve $sitepwşifre.

Eğer minimal veri kullanmak sonra gizli bir formda değeri yankı Eğer ilk php betiğinizde formu yapmak. Ben sadece bir php değeri kullanın ve göremiyorum gibi form düğmesinin yanındaki pref istediğiniz her yerde yankı.

Yazdırmak için PHP Formu

$hidden_forum = '
<form id="alt_forum_login" action="./forum/ucp.php?mode=login" method="post" style="display:none;">
    <input type="text" name="username" id="username" value="'.strtolower($siteid).'" title="Username" />
    <input type="password" name="password" id="password" value="'.$sitepw.'" title="Password" />
</form>';

Form göndermek için PHP ve Link

<?php print $hidden_forum; ?>
<pre><a href="#forum" onClick="javascript: document.getElementById('alt_forum_login').submit();">Forum</a></pre>

Doğru formu göndermeniz gerekmektedir ancak bağlantı bir onclick veya href = javascript benim üzgün kodlama görünür ancak yapmak alışkanlık:) document.getElementById ( 'alt_forum_login') (gönderin.
AgeofTalisman

Soru Javascript hakkında, hiç php kodu gerek yok
Shedokan

0

Javascript kullanarak formu göndermek için aşağıdaki kodu kullanabilirsiniz;

document.getElementById('FormID').submit();

-1
<html>
<body>

<p>Enter some text in the fields below, then press the "Submit form" button to submit the form.</p>

<form id="myForm" action="/action_page.php">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br><br>
  <input type="button" onclick="myFunction()" value="Submit form">
</form>

<script>
function myFunction() {
    document.getElementById("myForm").submit();
}
</script>

</body>
</html>

Bir dahaki sefere sadece ilgili parçayı ve bazı açıklamaları içeren uygun bir yanıtı paylaşabilir misiniz ?
Nico Haase

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.