2012-02-07 18 views
7

मैं फॉर्म का डेटा जमा करने के लिए जावास्क्रिप्ट का उपयोग करने की कोशिश कर रहा हूं। यहां एचटीएमएल है।ऑनसेट सबमिट करें एचटीएमएल फॉर्म

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

यहाँ post() समारोह के लिए जावास्क्रिप्ट है।

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

मेरे मुद्दा यह है कि जावास्क्रिप्ट चलता है, लेकिन अभी भी रूप संसाधित करता है और पेज ताज़ा करता है ..

मुझे उम्मीद है कि यह ताज़ा से प्रपत्र बंद कर देंगे में return false; कोड डाल दिया।

उत्तर

12

आप वापसी, ऑनसबमिट हैंडलर में पोस्ट() फ़ंक्शन के बाद झूठी हिस्सा डाल करने के लिए तो जैसे होगा:

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

मुझे लगता है कि कोशिश की थी और यह काम नहीं किया! लेकिन यह अब काम कर रहा है, वैसे भी धन्यवाद! – Frank

+0

अजीब है कि यह पहले काम नहीं किया था। पहली बार कुछ वाक्यविन्यास त्रुटि हो सकती है। खुशी है कि यह अब काम कर रहा है, हालांकि, मदद करने में खुश! –

+0

'<फॉर्म onsubmit =" वापसी पोस्ट(); "> 'और भी बेहतर है, मेरा जवाब देखें। – gdoron

2

आप वास्तव में से अपने इनलाइन डोम -0 हैंडलर झूठी लौटना ही होगा। तो

onsubmit = "post();"> 

को
onsubmit = "return post();"> 

बदलने या फिर आप अपने प्रपत्र एक आईडी देने के लिए और ऐसा कर सकता है:

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

फिर एक सुरक्षित स्थान से है, जिसमें अपने डोम तैयार है :

document.getElementById("form1").onsubmit = post; 
2

जब से तुम jQuery टैग जोड़ा, इस का सबसे अच्छा तरीका यह करने के लिए यह:
विनीत घटना देते

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

अपने की तरह होना चाहिए;

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

अपने जेएस को डीओएम से बाहर रखें।

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

JQuery:

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

के बाद से इस पोस्ट jQuery के साथ टैग है, मैं निम्नलिखित समाधान की पेशकश करेंगे:

$('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() का उपयोग करना चुनते हैं, तो इसे एक चर के लिए असाइन करें और [पॉइंटी ऐरे -> ऑब्जेक्ट फ़ंक्शन निष्पादित करें] निष्पादित करें (http://stackoverflow.com/questions/7867441/form-keyvalue-pairs-jquery-plugin#answer -786745 9) इसे सर्वर पर सबमिट करने से पहले। –

संबंधित मुद्दे