Funzioni col Dollaro

menesbatto

Nuovo Utente
11 Apr 2012
6
0
0
Qualcuno mi saprebbe spiegare come si utilizzano funzioni di questo tipo? Cioè in che hanno usa sintassi che utilizza il $?
Ho letto che si usano per non infognarsi con "arginare" la dichiarazioni delle variabili al loro interno pero' non risco a capire come si scrivono
e come si utilizzano!
Ad esempio questa, quale istruzione dovrei scrivere per usarla?
HTML:
<form>
...
	<input type="button" value="Invia" onClick="formsToObj()">
</form>

Codice:
$.fn.serializeObject = function()
{
   var o = {};
   var a = this.serializeArray();
   $.each(a, function() {
       if (o[this.name]) {
           if (!o[this.name].push) {
               o[this.name] = [o[this.name]];
           }
           o[this.name].push(this.value || '');
       } else {
           o[this.name] = this.value || '';
       }
   });
   return o;
};

Questa dovrebbe creare un file JSON da una form



o quest'altra
Codice:
			$(function() {
			    $('form').submit(function() {
			        $('#result').text(JSON.stringify($('formpersona').serializeObject()));
			        return false;
			    });
			});
		 	
		 	$.fn.serializeObject = function(){
				var o = {};
		 		var a = this.serializeArray();
		 		$.each(a, function(){
		 			if (o[this.name] !== undefined) {
		 				if (!o[this.name].push) {
		 					o[this.name] = [o[this.name]];
		 				}
		 				o[this.name].push(this.value || '');
		 			}
		 			else {
		 				o[this.name] = this.value || '';
		 			}
		 		});
		 		return o;
		 	};
Grazie
 
Ultima modifica:
Credevo di averti mostrato come si usano nell'altro post.

In ogni caso, le funzioni precedute dal simbolo del dollaro ($) sono in realtà metodi dell'oggetto jQuery (infatti scriverle facendo precedere il dollaro o jQuery è uguale). Ad esempio:
Codice:
$("#ciao");
jQuery("#ciao");
Restituiscono entrambe l'oggetto DOM con ID ciao (per una lista dei selettori vedi questa pagina).

Quest'oggetto esporrà tutti i metodi di jQuery (la lista completa è qui):
Codice:
$("#ciao").hide();
$("#ciao").html("<b>prova</b>");
$("#ciao").text("prova");

Veniamo ora al tuo caso. Questa porzione di codice:
Codice:
$.fn.serializeObject = function()
{
   var o = {};
   var a = this.serializeArray();
   $.each(a, function() {
       if (o[this.name]) {
           if (!o[this.name].push) {
               o[this.name] = [o[this.name]];
           }
           o[this.name].push(this.value || '');
       } else {
           o[this.name] = this.value || '';
       }
   });
   return o;
};
Definisce un nuovo metodo nell'oggetto jQuery. Questo significa che, dopo averla scritta, avrai accesso al metodo serializeObject:
Codice:
$("#ciao").serializeObject();

Dunque questa porzione:
Codice:
// meglio usare la forma che ho inserito io
// $(function() {
$(document).load(function() {
    $('form').submit(function() {
        // qui c'è un errore: dovrebbe essere #formpersona o .formpersona
        // $('#result').text(JSON.stringify($('formpersona').serializeObject()));

        return false;
    });
});
Imposta come contenuto di #result l'equivalente JSON di formpersona (JSON.stringify è un metodo statico dell'oggetto JSON, che fa parte della libreria nativa Javascript).
 

Discussioni simili