HosipLan

Untitled

May 4th, 2011
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. jQuery.fn.extend({
  2.     serializeValues: function () {
  3.         if (!this.is("form")) {
  4.             return null;
  5.         }
  6.  
  7.         var sendValues = {};
  8.  
  9.         // get values
  10.         var values = this.serializeArray();
  11.  
  12.         for (var i = 0; i < values.length; i++) {
  13.             var name = values[i].name;
  14.  
  15.             // multi
  16.             if (name in sendValues) {
  17.                 var val = sendValues[name];
  18.  
  19.                 if (!(val instanceof Array)) {
  20.                     val = [val];
  21.                 }
  22.  
  23.                 val.push(values[i].value);
  24.                 sendValues[name] = val;
  25.             } else {
  26.                 sendValues[name] = values[i].value;
  27.             }
  28.         }
  29.  
  30.         return sendValues;
  31.     },
  32.  
  33.     ajaxSubmit: function (callback, ajaxOptions) {
  34.         if (ajaxOptions === undefined) {
  35.             ajaxOptions = {};
  36.         }
  37.  
  38.         var $form = $(this[0].form || this[0]);
  39.  
  40.         // validation
  41.         if ($form.get(0).onsubmit && !$form.get(0).onsubmit()) return null;
  42.  
  43.         // get values
  44.         var sendValues = $form.serializeValues();
  45.         if (this.is(":submit")) {
  46.             sendValues[this.attr("name")] = this.val() || "";
  47.         }
  48.  
  49.         // send ajax request
  50.         ajaxOptions.url = $form.attr("action");
  51.         ajaxOptions.data = sendValues;
  52.         ajaxOptions.type = $form.attr("method") || "get";
  53.  
  54.         if (callback) {
  55.             ajaxOptions.success = callback;
  56.         }
  57.  
  58.         return jQuery.ajax(ajaxOptions);
  59.     }
  60. });
  61.  
  62. // ajax submit forms
  63. $(function () {
  64.     var $form = $("form.main_form");
  65.     var submitForm = function (e, $form) {
  66.         if( $form.find("input[type=file]").length === 0 ) {
  67.             $("#ajax-spinner").show();
  68.             $form.ajaxSubmit(jQuery.nette.success, {
  69.                 beforeSend: function (jqXHR) {
  70.                     return Nette.validateForm($form);
  71.                 }
  72.             });
  73.  
  74.             e.stopPropagation();
  75.             e.preventDefault();
  76.  
  77.         } else {
  78.             $form.submit();
  79.         }
  80.     };
  81.  
  82.     // odeslání na formulářích
  83.     $form.live("submit", function (e) { submitForm(e, $(this)); });
  84.     $form.find(":submit").live("submit", function (e) { submitForm(e, $(this).closest("form")); });
  85.  
  86.     $("form.datagrid :submit").live("click",function (e) {
  87.         $("#ajax-spinner").show();
  88.         $(this).ajaxSubmit(e);
  89.  
  90.         e.stopPropagation();
  91.         e.preventDefault();
  92.     });
  93. });
Advertisement
Add Comment
Please, Sign In to add comment