2011-11-11 16 views
10

मैं समय-समय पर AJAX पर अपना फॉर्म सबमिट करने के लिए .submit() का उपयोग कर रहा हूं, लेकिन मैं चाहता हूं कि उपयोगकर्ता यह देखने के लिए कि फ़ॉर्म को कताई चक्र से बचाया जा रहा है और फिर 'सहेजा गया!' सफलता पर क्या jQuery में .submit() के लिए success ट्रिगर है?jQuery .submit() सफलता या विफलता ट्रिगर

धन्यवाद!

उत्तर

5

आप .submit() के बजाय मैन्युअल $.post() अनुरोध का उपयोग कर सकते हैं। $.post() में सफलता कॉलबैक है।

आपको अपने फॉर्म के तत्व $.post() (लक्ष्य URL) और .serialize() का विवरण भरना होगा।

17

इस प्रयास करें:

jQuery:

$(document).ready(function() { 
    $('#form').submit(function() { 
     var status = '<img class="loading" src="loading_detail.gif" alt="Loading..." />'; 
     $("#ajax").after(status); 
     $.ajax({ 
      type: 'POST', 
      url: $(this).attr('action'), 
      data: $(this).serialize(), 
      dataType: 'json', 
      success: function(json) { 
       if(json.type == 'success') { 
        $('#msg').css("color","green").html(json.message); 
       } else if(json.type == 'warning'){ 
        $('#msg').css("color","yellow").html(json.message); 
       } else if(json.type == 'error'){ 
        $('#msg').css("color","red").html(json.message); 
       } 
       $('.loading').remove(); 
      } 
     }) 
     return false; 
    }); 
}); 

एचटीएमएल:

<div id="msg"></div> 
<form id="form" method="post" action="action.php" > 
    <input type="text" name="email" /> 
    <input type="submit" name="submit" value="submit" /><span id="ajax"></span> 
</form> 

action.php:

<?php 
if(isset($_POST['email'])){ 
$val = $_POST['email']; 
switch ($val) { 
    case '[email protected]': 
     $return = array('type'=>'success', 'message'=>'This is success message!'); break; 
    case 'email': 
     $return = array('type'=>'warning', 'message'=>'This is warning message!'); break; 
    default: 
     $return = array('type'=>'error', 'message'=>'This is error message!'); 
} 
echo json_encode($return); 
} 
?> 

नोट: यदि आप प्रोग्राम को प्रोग्रामेटिक रूप से सबमिट कर रहे हैं तो आपको एक बार फिर $('#form').submit() पर कॉल करने की आवश्यकता है, लेकिन इस बार बिना तर्क के ताकि आप सबमिट ईवेंट को ट्रिगर कर सकें।

+0

'अपने जवाब के something' भाग भ्रामक मुझे लगता है। – stewart715

+0

@masedesign: मुझे अपना जवाब संपादित किया गया था, मुझे आशा है कि आपकी मदद कर सके। –

1

पृष्ठ सबमिट करते समय एक कताई चक्र दिखाने के लिए, एनिमेटेड जीआईएफ (बहुत मुफ्त लोडिंग मंडलियां) प्राप्त करने का प्रयास करें। इस GIF के साथ अपने पृष्ठ में लागू:

class="myloadingcircle" style="display:none" 

और उसके बाद का उपयोग jQuery:

$("form").submit(function(e) { $(".myloadingcircle").show(); }); 
+1

फॉर्म सत्यापन के साथ जोड़ा गया यह काम नहीं करता है। फॉर्म अमान्य होने पर भी कताई चक्र चमक जाएगा। – MattParra

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