Fixed two FF JS warnings
[jquery.git] / src / ajax / ajax.js
index 93bb4e2..98f792a 100644 (file)
@@ -13,7 +13,7 @@ jQuery.fn.extend({
         * @param String url The URL of the HTML file to load.
         * @param Map params (optional) Key/value pairs that will be sent to the server.
         * @param Function callback (optional) A function to be executed whenever the data is loaded (parameters: responseText, status and response itself).
-        * @cat AJAX
+        * @cat Ajax
         */
        loadIfModified: function( url, params, callback ) {
                this.load( url, params, callback, 1 );
@@ -41,10 +41,10 @@ jQuery.fn.extend({
         * @param String url The URL of the HTML file to load.
         * @param Object params (optional) A set of key/value pairs that will be sent as data to the server.
         * @param Function callback (optional) A function to be executed whenever the data is loaded (parameters: responseText, status and response itself).
-        * @cat AJAX
+        * @cat Ajax
         */
        load: function( url, params, callback, ifModified ) {
-               if ( url.constructor == Function )
+               if ( jQuery.isFunction( url ) )
                        return this.bind("load", url);
 
                callback = callback || function(){};
@@ -55,7 +55,7 @@ jQuery.fn.extend({
                // If the second parameter was provided
                if ( params )
                        // If it's a function
-                       if ( params.constructor == Function ) {
+                       if ( jQuery.isFunction( params.constructor ) ) {
                                // We assume that it's the callback
                                callback = params;
                                params = null;
@@ -77,7 +77,7 @@ jQuery.fn.extend({
                        complete: function(res, status){
                                if ( status == "success" || !ifModified && status == "notmodified" )
                                        // Inject the HTML into all the matched elements
-                                       self.html(res.responseText)
+                                       self.attr("innerHTML", res.responseText)
                                          // Execute all the scripts inside of the newly-injected HTML
                                          .evalScripts()
                                          // Execute callback
@@ -105,7 +105,7 @@ jQuery.fn.extend({
         *
         * @name serialize
         * @type String
-        * @cat AJAX
+        * @cat Ajax
         */
        serialize: function() {
                return jQuery.param( this );
@@ -118,10 +118,10 @@ jQuery.fn.extend({
         * @name evalScripts
         * @type jQuery
         * @private
-        * @cat AJAX
+        * @cat Ajax
         */
        evalScripts: function() {
-               return this.find('script').each(function(){
+               return this.find("script").each(function(){
                        if ( this.src )
                                jQuery.getScript( this.src );
                        else
@@ -152,7 +152,7 @@ if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
  * @name ajaxStart
  * @type jQuery
  * @param Function callback The function to execute.
- * @cat AJAX
+ * @cat Ajax
  */
 
 /**
@@ -166,7 +166,7 @@ if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
  * @name ajaxStop
  * @type jQuery
  * @param Function callback The function to execute.
- * @cat AJAX
+ * @cat Ajax
  */
 
 /**
@@ -183,7 +183,7 @@ if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
  * @name ajaxComplete
  * @type jQuery
  * @param Function callback The function to execute.
- * @cat AJAX
+ * @cat Ajax
  */
 
 /**
@@ -201,7 +201,7 @@ if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
  * @name ajaxSuccess
  * @type jQuery
  * @param Function callback The function to execute.
- * @cat AJAX
+ * @cat Ajax
  */
 
 /**
@@ -219,11 +219,11 @@ if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
  * @name ajaxError
  * @type jQuery
  * @param Function callback The function to execute.
- * @cat AJAX
+ * @cat Ajax
  */
  
 /**
- * Attach a function to be executed before an AJAX request is send.
+ * Attach a function to be executed before an AJAX request is sent.
  *
  * The XMLHttpRequest and settings used for that request are passed
  * as arguments to the callback.
@@ -231,12 +231,12 @@ if ( jQuery.browser.msie && typeof XMLHttpRequest == "undefined" )
  * @example $("#msg").ajaxSend(function(request, settings){
  *   $(this).append("<li>Starting request at " + settings.url + "</li>");
  * });
- * @desc Show a message before an AJAX request is send.
+ * @desc Show a message before an AJAX request is sent.
  *
  * @name ajaxSend
  * @type jQuery
  * @param Function callback The function to execute.
- * @cat AJAX
+ * @cat Ajax
  */
 jQuery.each( "ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","), function(i,o){
        jQuery.fn[o] = function(f){
@@ -269,11 +269,11 @@ jQuery.extend({
         * @param String url The URL of the page to load.
         * @param Map params (optional) Key/value pairs that will be sent to the server.
         * @param Function callback (optional) A function to be executed whenever the data is loaded.
-        * @cat AJAX
+        * @cat Ajax
         */
        get: function( url, data, callback, type, ifModified ) {
                // shift arguments if data argument was ommited
-               if ( data && data.constructor == Function ) {
+               if ( jQuery.isFunction( data ) ) {
                        callback = data;
                        data = null;
                }
@@ -311,7 +311,7 @@ jQuery.extend({
         * @param String url The URL of the page to load.
         * @param Map params (optional) Key/value pairs that will be sent to the server.
         * @param Function callback (optional) A function to be executed whenever the data is loaded.
-        * @cat AJAX
+        * @cat Ajax
         */
        getIfModified: function( url, data, callback, type ) {
                return jQuery.get(url, data, callback, type, 1);
@@ -334,7 +334,7 @@ jQuery.extend({
         * @type XMLHttpRequest
         * @param String url The URL of the page to load.
         * @param Function callback (optional) A function to be executed whenever the data is loaded.
-        * @cat AJAX
+        * @cat Ajax
         */
        getScript: function( url, callback ) {
                return jQuery.get(url, null, callback, "script");
@@ -359,7 +359,7 @@ jQuery.extend({
         * @param String url The URL of the page to load.
         * @param Map params (optional) Key/value pairs that will be sent to the server.
         * @param Function callback A function to be executed whenever the data is loaded.
-        * @cat AJAX
+        * @cat Ajax
         */
        getJSON: function( url, data, callback ) {
                return jQuery.get(url, data, callback, "json");
@@ -388,7 +388,7 @@ jQuery.extend({
         * @param String url The URL of the page to load.
         * @param Map params (optional) Key/value pairs that will be sent to the server.
         * @param Function callback (optional) A function to be executed whenever the data is loaded.
-        * @cat AJAX
+        * @cat Ajax
         */
        post: function( url, data, callback, type ) {
                return jQuery.ajax({
@@ -421,7 +421,7 @@ jQuery.extend({
         * @name $.ajaxTimeout
         * @type undefined
         * @param Number time How long before an AJAX request times out.
-        * @cat AJAX
+        * @cat Ajax
         */
        ajaxTimeout: function( timeout ) {
                jQuery.ajaxSettings.timeout = timeout;
@@ -445,7 +445,7 @@ jQuery.extend({
         * @name $.ajaxSetup
         * @type undefined
         * @param Map settings Key/value pairs to use for all AJAX requests
-        * @cat AJAX
+        * @cat Ajax
         */
        ajaxSetup: function( settings ) {
                jQuery.extend( jQuery.ajaxSettings, settings );
@@ -457,7 +457,8 @@ jQuery.extend({
                timeout: 0,
                contentType: "application/x-www-form-urlencoded",
                processData: true,
-               async: true
+               async: true,
+               data: null
        },
        
        // Last-Modified header cache for next request
@@ -536,7 +537,7 @@ jQuery.extend({
         * the default content-type "application/x-www-form-urlencoded". If you want to send
         * DOMDocuments, set this option to false.
         *
-        * (Boolean) async - By default, all requests are send asynchronous (set to true).
+        * (Boolean) async - By default, all requests are sent asynchronous (set to true).
         * If you need synchronous requests, set this option to false.
         *
         * (Function) beforeSend - A pre-callback to set custom headers etc., the
@@ -580,7 +581,7 @@ jQuery.extend({
         * @name $.ajax
         * @type XMLHttpRequest
         * @param Map properties Key/value pairs to initialize the request with.
-        * @cat AJAX
+        * @cat Ajax
         * @see ajaxSetup(Map)
         */
        ajax: function( s ) {
@@ -590,7 +591,7 @@ jQuery.extend({
                // if data available
                if ( s.data ) {
                        // convert data if not already a string
-                       if (s.processData && typeof s.data != 'string')
+                       if (s.processData && typeof s.data != "string")
                        s.data = jQuery.param(s.data);
                        // append data to url for get requests
                        if( s.type.toLowerCase() == "get" )
@@ -789,8 +790,9 @@ jQuery.extend({
                // of form elements
                if ( a.constructor == Array || a.jquery )
                        // Serialize the form elements
-                       for ( var i = 0; i < a.length; i++ )
-                               s.push( a[i].name + "=" + encodeURIComponent( a[i].value ) );
+                       jQuery.each( a, function(){
+                               s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( this.value ) );
+                       });
 
                // Otherwise, assume that it's an object of key/value pairs
                else
@@ -798,10 +800,11 @@ jQuery.extend({
                        for ( var j in a )
                                // If the value is an array then the key names need to be repeated
                                if ( a[j].constructor == Array )
-                                       for ( var k = 0; k < a[j].length; k++ )
-                                               s.push( j + "=" + encodeURIComponent( a[j][k] ) );
+                                       jQuery.each( a[j], function(){
+                                               s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) );
+                                       });
                                else
-                                       s.push( j + "=" + encodeURIComponent( a[j] ) );
+                                       s.push( encodeURIComponent(j) + "=" + encodeURIComponent( a[j] ) );
 
                // Return the resulting serialization
                return s.join("&");