2012-02-07 28 views
7

Form verisini göndermek için Javascript kullanmaya çalışıyorum. İşte html.onsubmit yenileme html formu

<form onsubmit="post();"> 
//input fields here 
</form> 

İşte post() fonksiyonu için Javascript bu. Sorunum formu hala işler ve sayfayı yeniler ama JavaScript çalışır olmasıdır

var post = function() { 
alert('the form was submitted'); 
return false; 
} 

..

Ben ferahlatıcı formu durdurmak umuduyla içinde return false; kodu koydu.

cevap

12

Çok gibi onsubmit işleyicisi post() işlevi sonra return false parçası koymak zorunda kalacak:

<form onsubmit="post();return false;"> 
//input fields here 
</form> 
+0

Bunu deneyin vermedi ve işe yaramadı! Ama şimdi çalışıyor, yine de teşekkürler! – Frank

+0

Daha önce çalışmadığı garip. İlk defa bazı sözdizimi hatası olabilir. Şimdilik işe yarıyor olsa da, yardımcı olmaktan mutluluk duyuyoruz! –

+0

'

' daha iyi, cevabımı gör. – gdoron

2

Sen aslında satır içi dom-0 işleyicisinden return false gerekir. Yani

onsubmit = "post();"> 

için
onsubmit = "return post();"> 

değiştirmek Ya da formu bir kimlik vermek ve bu yapabilirdi:

<form id="form1" onsubmit = "post();"> 

Sonra güvenli bir yerden hangi sizin dom hazır :

document.getElementById("form1").onsubmit = post; 
Eğer jQuery etiketi ekledi yana
2

, bu bunu yapmanın en iyi yolu:
mütevazi olay o olmalıdır en yolla

$('form').submit(function(){ 
     alert('the form was submitted'); 
     return false; 
    }); 

takmak;

<form onsubmit="return post();"> 
6

J'lerinizi DOM'dan uzak tutun.

<form id="myform" action="somepage.php" method="post"> 
//input fields 
</form> 

JQuery: Bu yazı jQuery ile etiketlenmiş olduğundan

$('#myform').submit(function(event){ 
    alert('submitted'); 
    event.preventDefault(); 
}); 
1

, ben aşağıdaki çözümü sunarız:

$('form').submit(function(e){ 
    //prevent the form from actually submitting. 
    e.preventDefault(); 
    //specify the url you want to post to. 
    //optionally, you could grab the url using $(this).attr('href'); 
    var url = "http://mysite.com/sendPostVarsHere"; 
    //construct an object to send to the server 
    //optionally, you could grab the input values of the form using $(this).serializeArray() 
    var postvars = {}; 
    //call jquery post with callback function 
    $.post(url, postvars, function(response){ 
    //do something with the response 
    console.log(response); 
    }, 'json') 
}); 
+0

serializeArray() öğesini kullanmayı seçerseniz, onu bir değişkene atayın ve [Pointy's Array -> Object işlevi burada] çalıştırın (http://stackoverflow.com/questions/7867441/form-keyvalue-pairs-jquery-plugin#answer -7867459) sunucuya göndermeden önce. –