2012-03-27 88 views
0

我想它不是正在执行一个选择列表中的(LevelId0)值的变化,但何时执行该功能。尝试在$(document).ready()之内和它之外。 hasFullAccess是窗口中的本地布尔变量。jQuery函数没有被执行

$("#LevelId0").change(function() { 
    if (hasFullAccess) { 
     alert("oy"); 
    } 
    else { 
     alert("oi"); 
     // var currentYear = (new Date).getFullYear(); 
     // $(".bound").val("01/01/" + (currentYear + 1)); 
     //$(".EffectiveDateClass").val("01/01/"+(currentYear +1)); 
    } 
});​ 

SOLUTION

@if (!hasFullAccess) 
    { 
     <text>$(document).on('change', "#LevelId0, #CLevelId1", function() { 
      var currentYear = (new Date).getFullYear(); 
      $("#LevelId1, #LevelId0").val($(this).val()); 
      $("#EffectiveDate0, #EffectiveDate1,.EffectiveDateClass").val("01/01/" + (currentYear + 1)); 
      }); 
     </text> 
     } 
+1

不管你做什么,保持一个'document.ready'内含有以确保在加载您的jQuery函数中存在的元素。 – Sparky 2012-03-27 18:50:52

+0

也许发布您的HTML。你的代码似乎没有什么问题,并且change()对select元素有效。 – Dave 2012-03-27 18:52:12

+0

除的document.ready建议,如果您的内容动态更新,你会想用'。对委托给听众()' – 2012-03-27 18:52:21

回答

1
jQuery(document).ready(function() { 
    $(document).on('change', "#LevelId0", function() { 
     if (hasFullAccess) { 
      alert("oy"); 
     } else { 
      alert("oi"); // var currentYear = (new Date).getFullYear();  
      // $(".bound").val("01/01/" + (currentYear + 1));  
      //$(".EffectiveDateClass").val("01/01/"+(currentYear +1)); 
     } 
    }); 
}); 

你真正想要的也许是:

jQuery(document).ready(function() { 
    $(document).on('change', "#LevelId0, #LevelId1", function() { 
     updateValues(); 
    }); 
}); 

这是什么警报在$(document).ready(

alert(hasFullAccess); 

编辑:功能改变:

jQuery(document).ready(function() { 
    $(document).on('change', "#LevelId0", function() { 
     if (typeof hasFullAccess === "undefined") { 
      alert("oy"); 
     } else { 
      alert("oi"); 
     } 
    }); 
}); 
+0

这只能在if语句之外使用。 – 2012-03-27 19:23:40

+1

我不知道'if语句'是什么意思,除了触发函数内部外,我看不到这里涉及的语句。 – 2012-03-27 19:28:34

+0

这就是我正在尝试。我在if语句之前放置的任何代码都会被执行,但if或else中的任何内容都不会被执行。 – 2012-03-27 19:36:44