2009-04-22 2 views
17

У меня есть selectbox с месячными периодами в нем.

Вот мой код:

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

Но когда я загрузить мою страницу я Staight прочь получить ошибку:

$ ("# ppsub_ppterm_id") является нулевым

Line 17

Любые идеи?

ответ

36

Похоже, что JQuery не загружается должным образом. Какой источник/версия вы используете?

В качестве альтернативы это может быть столкновение пространства имен, поэтому используйте явно jQuery вместо $. Если это работает, вы можете использовать noConflict, чтобы другой код, который использует $, не прерывается.

+0

sanders

+0

Спасибо, такой же вопрос здесь с инструментами moo. –

+1

СПАСИБО! Я вытаскивал свои волосы, пытаясь запустить некоторый jquery, чтобы отредактировать форму на веб-сайте, который я не мог контролировать в определенных областях, потому что это был предварительная компоновка. по какой-то причине $ возвращал null, но jQuery работал отлично. БЛАГОДАРЯ! –

0

Убедитесь, что вы используете свой код JQuery после загрузки документа:

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

Кроме того, убедитесь у вас нет других элементов управления с идентификатором «ppsub_ppterm_id» на вашей HTML странице.

Это первая вещь, которую я бы проверил.

+4

$ (() функция быстрого доступа к $ (document) .ready (function() –

+0

О, сладкий - хорошо знать. –

3

Даже если jQuery не смог найти элемент, он не будет пустым - это будет пустой объект jQuery.

Вы уверены, что загружен jQuery? Возможно ли, что другая используемая вами библиотека JavaScript вызывает конфликты?

2

у вас есть «ppsub_ppterm_id» как класс, имя, идентификатор и т.д. ...

Вы должны выбрать один и выбрать на нем. Нет необходимости, чтобы ID, NAME, CLASS для всех имели одинаковые значения.

Вы, вероятно, путаете ад из 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]") 

Выберите способ и пойдите с ним, но выньте все эти избыточные атрибуты.

+1

«Вы, наверное, путаете ад из jQuery». ;-) – sanders

5

Чейн '$' с помощью JQuery, например:

$ ("# MyId") -> JQuery ("# MyId")

Он работает