2009-04-22 115 views
17

我有一个有月份的选择框。

这里是我的代码:

$(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”)为空

线17

任何想法?

回答

36

听起来像JQuery没有正确加载。您使用哪个来源/版本?

或者,它可能是名称空间冲突,所以请尝试明确地使用jQuery而不是$。如果可行,您可能希望使用noConflict以确保使用$的其他代码不会中断。

+0

sanders 2009-04-22 12:56:44

0

确保您的文档加载后运行jQuery代码:

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

另外,还要确保你没有其他控制,你的HTML页面上的ID“ppsub_ppterm_id”。

这些是我会检查的第一件事。

+4

$(函数()是捷径$(document).ready(function() – 2009-04-22 12:54:41

+0

Oh,sweet - good to know。 – 2009-04-22 12:55:10

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]") 

选择一个方式去用它,而是采取了所有这些多余的属性。

5

CHANE '$' 的jQuery例如:

$( “#身份识别码”) - >的jQuery( “#身份识别码”)

它的工作原理