2012-03-27 89 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