Advertisement
Guest User

dignome

a guest
Oct 23rd, 2010
295
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. From the head section of the page containing the form #reqFormID:
  2.  
  3. <script type="text/javascript">
  4.     $(document).ready(function() {
  5.            
  6.         $("#reqFormID").validationEngine({
  7.             ajaxSubmit: true,
  8.             ajaxSubmitFile: "site-helper.php",
  9.             ajaxSubmitExtraData:"action=submit-reqform",
  10.             ajaxSubmitMessage: "Thank you, a representative will contact you shortly.",
  11.             success :  function() { $("#inside_lower_container").animate({height:555},400); } ,
  12.             userSubmitFX : function() {
  13.                 $(".submit").attr('value','Sending...');
  14.                 $(".submit").attr('disabled','disabled');
  15.             },
  16.             userSubmitFXFail : function() {
  17.                 $(".submit").attr('value','Submit Failed');
  18.                
  19.                 window.setTimeout(function() { // maybe the issue is gone - allow click
  20.                     $(".submit").attr('value','Submit') ;
  21.                     $(".submit").attr('disabled', '');
  22.                 }, 30000);
  23.             },
  24.             failure : function() { // validation error - allow click
  25.                 $(".submit").attr('value','Submit');
  26.                 $(".submit").attr('disabled', '');
  27.             }
  28.         })
  29.     });    
  30. </script>
  31.  
  32. Relevant changes to jquery.validationEngine.js:
  33.  
  34. LINE 22:
  35.  
  36.     settings = jQuery.extend({
  37.         allrules:allRules,
  38.         validationEventTriggers:"focusout",                
  39.         inlineValidation: true,
  40.         returnIsValid:false,
  41.         liveEvent:true,
  42.         unbindEngine:true,
  43.         containerOverflow:false,
  44.         containerOverflowDOM:"",
  45.         ajaxSubmit: false,
  46.         scroll:true,
  47.         promptPosition: "topRight", // OPENNING BOX POSITION, IMPLEMENTED: topLeft, topRight, bottomLeft, centerRight, bottomRight
  48.         success : false,
  49.         userSubmitFX : function() {},
  50.         userSubmitFXFail : function() {},
  51.         beforeSuccess :  function() {},
  52.         failure : function() {}
  53.     }, settings);
  54.  
  55. LINE 70:
  56.  
  57.     $(this).bind("submit", function(caller){   // ON FORM SUBMIT, CONTROL AJAX FUNCTION IF SPECIFIED ON DOCUMENT READY
  58.         $.validationEngine.onSubmitValid = true;
  59.         $.validationEngine.settings = settings;
  60.        
  61.         // invoke user effects for submit button
  62.         settings.userSubmitFX && settings.userSubmitFX();
  63.        
  64.         if($.validationEngine.submitValidation(this,settings) == false){
  65.             if($.validationEngine.submitForm(this,settings) == true) return false;
  66.         }else{
  67.             settings.failure && settings.failure();
  68.             return false;
  69.         }      
  70.     })
  71.  
  72. LINE 393:
  73.  
  74.             $.ajax({
  75.                 type: "POST",
  76.                 url: $.validationEngine.settings.ajaxSubmitFile,
  77.                 async: true,
  78.                 data: $(caller).serialize()+"&"+extraData,
  79.                 error: function(data,transport){ $.validationEngine.debug("error in the ajax: "+data.status+" "+transport) },
  80.                 success: function(data){
  81.                     if(data == "true"){         // EVERYTING IS FINE, SHOW SUCCESS MESSAGE
  82.                         $(caller).css("opacity",1)
  83.                         $(caller).animate({opacity: 0, height: 0}, function(){
  84.                             $(caller).css("display","none");
  85.                             $(caller).before("<div class='ajaxSubmit'>"+$.validationEngine.settings.ajaxSubmitMessage+"</div>");
  86.                             $.validationEngine.closePrompt(".formError",true);  
  87.                             $(".ajaxSubmit").show("slow");
  88.                             if ($.validationEngine.settings.success){   // AJAX SUCCESS, STOP THE LOCATION UPDATE
  89.                                 $.validationEngine.settings.success && $.validationEngine.settings.success();
  90.                                 return false;
  91.                             }
  92.                         })
  93.                     }else{                      // HOUSTON WE GOT A PROBLEM (SOMETING IS NOT VALIDATING)
  94.                         data = eval( "("+data+")");
  95.                         if(!data.jsonValidateReturn){
  96.                              $.validationEngine.debug("you are not going into the success fonction and jsonValidateReturn return nothing");
  97.                         }
  98.                         errorNumber = data.jsonValidateReturn.length   
  99.                         for(index=0; index<errorNumber; index++){  
  100.                             fieldId = data.jsonValidateReturn[index][0];
  101.                             promptError = data.jsonValidateReturn[index][1];
  102.                             type = data.jsonValidateReturn[index][2];
  103.                             $.validationEngine.buildPrompt(fieldId,promptError,type);
  104.                         }
  105.                        
  106.                         // call function to modify submit button on failure
  107.                         $.validationEngine.settings.userSubmitFXFail && $.validationEngine.settings.userSubmitFXFail();
  108.                     }
  109.                 }
  110.             })
Advertisement
RAW Paste Data Copied
Advertisement