2009-04-22 15 views
17

Tengo un cuadro de selección con períodos de mes.

Aquí está mi código:

$(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> 

Pero cuando cargo mi página i staight distancia obtener un error:

$ ("# ppsub_ppterm_id") es nulo

Línea 17

¿Alguna idea?

Respuesta

36

Parece que JQuery no se carga correctamente. ¿Qué fuente/versión estás usando?

Alternativamente, podría ser una colisión del espacio de nombres, así que intente usar jQuery explícitamente en lugar de $. Si eso funciona, puede usar noConflict para asegurarse de que el otro código que está usando $ no se rompe.

+0

sanders

+0

Gracias, el mismo problema aquí con las herramientas de moo –

+1

GRACIAS! Estaba sacando mi cabello, tratando de ejecutar algunos jquery para editar un formulario en un sitio web que no podía controlar ciertos campos de porque era un diseño precocinado por algún motivo, $ devolvía nulo, pero jQuery funcionaba perfectamente. ¡GRACIAS! –

0

Asegúrese de que se está ejecutando el código de jQuery, después de cargar el documento:

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

También asegúrese de que no tiene otros controles con el id "ppsub_ppterm_id" en su página HTML.

Esas son las primeras cosas que verificaría.

+4

$ (function() es atajo para $ (document) .ready (function() –

+0

Oh, dulce - es bueno saber. –

3

Incluso si jQuery no pudo encontrar el elemento, no sería nulo, sería un objeto jQuery vacío.

¿Estás seguro de que jQuery está cargado? ¿Es posible que otra biblioteca de JavaScript que estés utilizando esté causando conflictos?

2

usted tiene "ppsub_ppterm_id" como una clase, nombre, identificación, etc ...

Usted necesita escoger uno y seleccione en él. No es necesario que ID, NAME, CLASS tengan todos los mismos valores.

Probablemente estés confundiendo a 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]") 

Elija un camino e ir con él, pero elimine todos esos atributos redundantes.

+1

"Probablemente estés confundiendo a jQuery". ;-) – sanders

5

chane '$' por jQuery por ejemplo:

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

Funciona