2009-08-23 14 views
5

Sto lavorando con JQuery e sto correndo in questo strano (o forse stupido) errore.JQuery - object.id non è definito quando non dovrebbe essere

Nel mio HTML ho:

<input type="password" name="repeatPassword" id="id_repeatPassword" /> 

E poi nel mio codice javascript che ho:

validateRepeatPassword($('#id_repeatPassword')); 

Purtroppo nella funzione "validateRepeatPassword":

function validateRepeatPassword(o) { 
     // this works 
     if (o.value == $("#id_password").val()) { 
     // this returns "undefined" 
     alert(o.id) 
... 
} 

perché?

risposta

13

o è un riferimento a un oggetto jQuery, NON un riferimento di elemento DOM. Dentro la funzione validateRepeatPassword fare:

alert($(o).attr('id')); 

Se si desidera accedere proprietà dell'elemento diretta DOM dall'oggetto jQuery,

alert(o[0].id) 

alert(o.get(0).id); 
+1

o è già un oggetto jQuery – cletus

+0

lo so, ma avvolgerlo all'interno della funzione lo renderebbe più indulgente in quanto accetterebbe anche DOM Elements nell'argomento. Non è un grosso problema. –

+0

cool, ma esiste un modo per usare jQuery per recuperare l'obeject come riferimento di un elemento DOM? –

2

all'interno della vostra funzione o è un oggetto jQuery, si dovrebbe prendere l'ID con la funzione attr di o.

alert(o.attr('id')); 

Ma se si desidera lavorare direttamente con l'elemento DOM sulla vostra funzione validateRepeatPassword, è possibile passare un riferimento all'elemento:

validateRepeatPassword($('#id_repeatPassword').get(0)); 
Problemi correlati