2009-04-22 11 views
17

Ho una selectbox con periodi mensili.

Ecco il mio codice:

$(function(){ 
         $("#ppsub_ppterm_id").change(function(){ 
             var term = this.options[this.selectedIndex].text; 
             if(term == "Eenmalig"){ 
               $(".idealtd").show(); 
             }else{ 
               $(".idealtd").hide(); 
               //$("#ppsub_amount option:selected").val('anders'); 
             } 
         }); 
     }); 
<select name="ppsub_ppterm_id" class="ppsub_ppterm_id" 
id="ppsub_ppterm_id" style="width: 100px; font-size: 11px;"> 
               <option value="M">Maand</option> 
               <option value="K">Kwartaal</option> 
               <option value="H">Halfjaar</option> 
               <option value="J">Jaar</option> 
               <option selected value="E">Eenmalig</option> 
             </select> 

Ma quando carico la mia pagina ho staight lontano un errore:

$ ("# ppsub_ppterm_id") è nullo

Linea 17

Qualche idea?

risposta

36

Suoni come JQuery non si carica correttamente. Quale fonte/versione stai usando?

In alternativa, potrebbe essere una collisione nello spazio dei nomi, quindi provare a utilizzare jQuery in modo esplicito anziché $. Se funziona, potresti utilizzare noConflict per assicurarti che l'altro codice che utilizza $ non si interrompa.

+0

sanders

+0

Grazie, lo stesso problema qui con strumenti moo –

+1

GRAZIE! Stavo tirando fuori i miei capelli, cercando di eseguire qualche jQuery per modificare un modulo su un sito Web che non potevo controllare alcuni campi perché era un layout precotto. per qualche motivo $ restituiva null, ma jQuery funzionava perfettamente. GRAZIE! –

0

assicurarsi che si sta eseguendo il codice jQuery dopo che il documento è stato caricato:

$(document).ready(function() { /* put your stuff here */ }); 

anche assicurarsi di non avere altri controlli con l'id "ppsub_ppterm_id" sulla vostra pagina HTML.

Queste sono le prime cose che vorrei controllare.

+4

$ (function() è scorciatoia per $ (document) .ready (function() –

+0

Oh, dolce - buono a sapersi. –

3

Anche se jQuery non ha trovato l'elemento, non sarebbe nullo: sarebbe un oggetto jQuery vuoto.

Sei sicuro che jQuery è stato caricato? È possibile che un'altra libreria JavaScript che stai usando causi dei conflitti?

2

avete "ppsub_ppterm_id" come classe, nome, id ecc ...

è necessario raccogliere ONE e selezionate da esso. Non è necessario che ID, NOME, CLASS abbiano tutti gli stessi valori.

Probabilmente stai confondendo il diavolo con jQuery.

<a id="ppsub_ppterm_id"> = $("#ppsub_ppterm_id") 

<a class="ppsub_ppterm_id"> = $(".ppsub_ppterm_id") 

<a name="ppsub_ppterm_id"> = $("*[name=ppsub_ppterm_id]") 

Scegliere un modo e andare con esso, ma eliminare tutti quegli attributi ridondanti.

+1

"Probabilmente stai confondendo il diavolo con jQuery." ;-) – sanders

5

chane '$' di jQuery per esempio:

$ ("# myid") -> jQuery ("# myid")

Funziona