जवाबों:
यह इस बात पर निर्भर करता है कि आप फॉर्म को सामान्य रूप से सबमिट कर रहे हैं या AJAX कॉल के माध्यम से। आप jquery.com पर बहुत सारी जानकारी पा सकते हैं , उदाहरण सहित प्रलेखन। सामान्य रूप से फ़ॉर्म जमा submit()करने के लिए, उस साइट पर विधि देखें। के लिए AJAX , वहाँ कई अलग अलग संभावनाएं है, हालांकि आप शायद या तो उपयोग करना चाहते हैं ajax()या post()तरीकों। ध्यान दें कि post()वास्तव में ajax()एक सरलीकृत, और सीमित, इंटरफ़ेस के साथ विधि को कॉल करने का एक सुविधाजनक तरीका है ।
एक महत्वपूर्ण संसाधन, एक जिसे मैं हर दिन उपयोग करता हूं, वह यह है कि आपको बुकमार्क करना चाहिए कि jQuery कैसे काम करता है । इसमें jQuery का उपयोग करने के लिए ट्यूटोरियल हैं और बाएं हाथ का नेविगेशन सभी प्रलेखन तक पहुंच देता है।
उदाहरण:
साधारण
$('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...
}
});
});
ध्यान दें कि ajax()और post()ऊपर दिए गए तरीके बराबर हैं। अतिरिक्त पैरामीटर हैं जिन्हें आप ajax()त्रुटियों को संभालने के अनुरोध में जोड़ सकते हैं, आदि।
$('form#MyForm').serialize() + '&newData=' + newData + '&moreData=' + moreData। नोट: बाद वाले दो का उपयोग करके यूआरएल को इनकोड किया जा सकता है encodeURIComponent()। या - आप दोनों सिरों पर JSON एन्कोडिंग का उपयोग करने के लिए बदल सकते हैं, लेकिन फिर आपको अपने अतिरिक्त डेटा के साथ प्रपत्र डेटा को एक जावास्क्रिप्ट डेटा संरचना में डालना होगा और इसे क्रमबद्ध करना होगा। उस स्थिति में आप संभवतः serializeArrayफॉर्म का उपयोग करेंगे और अपने अन्य डेटा को मर्ज करेंगे।
आपको उपयोग करना पड़ेगा $("#formId").submit()।
आप आम तौर पर एक फ़ंक्शन के भीतर से इसे कॉल करेंगे।
उदाहरण के लिए:
<input type='button' value='Submit form' onClick='submitDetailsForm()' />
<script language="javascript" type="text/javascript">
function submitDetailsForm() {
$("#formId").submit();
}
</script>
आप इस बारे में अधिक जानकारी Jquery वेबसाइट पर प्राप्त कर सकते हैं ।
जब आपके पास एक मौजूदा फॉर्म हो, तो अब आपको jquery के साथ काम करना चाहिए - ajax / post अब आप कर सकते हैं:
अपना सामान खुद करो
$(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...
}
});
});
});कृपया ध्यान दें कि serialize()फ़ंक्शन के लिए उपरोक्त उदाहरण में काम करने के लिए, सभी फॉर्म तत्वों को अपनी nameविशेषता परिभाषित करने की आवश्यकता है ।
फार्म का उदाहरण:
<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 - इस नमूने में POST का उपयोग करके डेटा प्रस्तुत किया जाता है, इसलिए इसका अर्थ है कि आप अपने डेटा को एक्सेस कर सकते हैं
$_POST['dataproperty1']
, जहां dataproperty1 आपके जसन में एक "वैरिएबल-नाम" है।
यदि आप CodeIgniter का उपयोग करते हैं तो यहां नमूना वाक्यविन्यास:
$pdata = $this->input->post();
$prop1 = $pdata['prop1'];
$prop1 = $pdata['prop2'];
JQuery में मैं निम्नलिखित पसंद करूंगा:
$("#form-id").submit()
लेकिन फिर, आपको वास्तव में उस कार्य को करने के लिए jQuery की आवश्यकता नहीं है - बस नियमित जावास्क्रिप्ट का उपयोग करें:
document.getElementById("form-id").submit()
मैनुअल से: jQuery डॉक्टर
$("form:first").submit();
जानकारी के लिए
अगर कोई भी उपयोग करता है
$('#formId').submit();
ऐसा कुछ मत करो
<button name = "submit">
मुझे खोजने में कई घंटे लग गए कि सबमिट () इस तरह से काम नहीं करेगा।
"sumit"यह स्पष्ट नहीं करता है कि टाइपो उत्तर में अनपेक्षित है, या समस्या से संबंधित है। क्या आपका मतलब है कि "submit"jquery फॉर्म जमा () नाम का एक बटन गड़बड़ है? या क्या आपका मतलब यह है कि समस्या यह थी कि आपने मानक के बजाय बटन नाम जमा किया था type="submit"?
Jquery का उपयोग करके अपना फॉर्म जमा करने के लिए इसका उपयोग करें। यहाँ लिंक 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>
buttonफ़ॉर्म को सबमिट नहीं करने के लिए अपने बटन में एक प्रकार जोड़ने के लायक है (जैसा कि सभी ब्राउज़र उसी तरह के बटन के साथ व्यवहार नहीं करते हैं)।
यह प्रीलोडर के साथ एक फॉर्म भेजेगा:
var a=$('#yourform').serialize();
$.ajax({
type:'post',
url:'receiver url',
data:a,
beforeSend:function(){
launchpreloader();
},
complete:function(){
stopPreloader();
},
success:function(result){
alert(result);
}
});
मैं यादृच्छिक विधि http://www.jackart4.com/article.html के साथ सुधार किए गए फ़ॉर्म डेटा पोस्ट को बनाने के लिए कुछ ट्रिक कर रहा हूं
$("form:first").submit();
इवेंट्स देखें / सबमिट करें ।
ध्यान दें कि यदि आपने पहले से ही अपने फॉर्म के लिए सबमिट इवेंट श्रोता स्थापित किया है, तो सबमिट करने के लिए इनर कॉल ()
jQuery('#<form-id>').submit( function(e){
e.preventDefault();
// maybe some validation in here
if ( <form-is-valid> ) jQuery('#<form-id>').submit();
});
काम नहीं करेगा क्योंकि यह इस फॉर्म के सबमिट इवेंट (जो विफल हो जाता है) के लिए एक नया ईवेंट श्रोता स्थापित करने का प्रयास करता है। इसलिए आपको HTML एलिमेंट को खुद ही एक्सेप्ट करना होगा (सीधे jQquery से) और इस तत्व पर कॉल सबमिट () करें:
jQuery('#<form-id>').submit( function(e){
e.preventDefault();
// note the [0] array access:
if ( <form-is-valid> ) jQuery('#<form-id>')[0].submit();
});
तुम भी अजाक्स aswell का उपयोग कर प्रस्तुत करने के लिए jquery फार्म प्लगइन का उपयोग कर सकते हैं:
ध्यान दें कि इंटरनेट एक्सप्लोरर में गतिशील रूप से बनाए गए फ़ॉर्म के साथ समस्याएं हैं। इस तरह बनाया गया एक फॉर्म IE (9) में जमा नहीं होगा:
var form = $('<form method="post" action="/test/Delete/">' +
'<input type="hidden" name="id" value="' + myid + '"></form>');
$(form).submit();
IE में काम कर पाने के लिए फॉर्म एलीमेंट बनाएं और इसे सबमिट करने से पहले इसे संलग्न करें:
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);
उदाहरण 1 में प्रपत्र बनाना और फिर इसे संलग्न करना काम नहीं करेगा - IE9 में यह एक JScript त्रुटि फेंकता है DOM Exception: HIERARCHY_REQUEST_ERR (3)
टॉमी डब्ल्यू @ https://stackoverflow.com/a/6694054/694325 के लिए सहारा
अब तक के समाधान के लिए आपको फॉर्म की आईडी जानना आवश्यक है।
आईडी जानने की आवश्यकता के बिना फॉर्म जमा करने के लिए इस कोड का उपयोग करें:
function handleForm(field) {
$(field).closest("form").submit();
}
उदाहरण के लिए यदि आप एक बटन के लिए क्लिक ईवेंट को हैंडल करना चाहते हैं, तो आप उपयोग कर सकते हैं
$("#buttonID").click(function() {
handleForm(this);
});
आप इसे इस तरह इस्तेमाल कर सकते हैं:
$('#formId').submit();
या
document.formName.submit();
गतिशील रूपों के लिए IE चाल:
$('#someform').find('input,select,textarea').serialize();
मैं एक सामान्य समाधान सुझाता हूं ताकि आपको हर फॉर्म के लिए कोड न जोड़ना पड़े। Jquery फॉर्म प्लगइन (http://jquery.malsup.com/form/) का उपयोग करें और इस कोड को जोड़ें।
$(function(){
$('form.ajax_submit').submit(function() {
$(this).ajaxSubmit();
//validation and other stuff
return false;
});
});
मैंने भी अजाक्स के माध्यम से एक फॉर्म जमा करने (वास्तव में इसे प्रस्तुत किए बिना) का उपयोग किया है:
jQuery.get("process_form.php"+$("#form_id").serialize(), {},
function() {
alert("Okay!");
});
$.postस्पष्ट रूप से डिकॉन्स्ट्रक्ट किया और सबमिट करने के लिए डेटा उत्पन्न करने के लिए फॉर्म का पुनर्निर्माण किया। धन्यवाद!