开发者问题收集

未捕获的 ReferenceError:函数名称未定义

2014-01-16
4415

我查看过这个 线程 这个 ,但它们并没有真正帮助我。

我有一个如下所示的 ASP:CheckBox 控件。

<asp:CheckBox ID="chbArchived" runat="server" Checked='<%# Bind("archived") %>' OnClick=changeExpirationDate() />

我的 JavaScript 如下:

<script type="text/javascript">
        $(document).ready(function () {
            //alert("got here");
            $('.insDateTime').datetimepicker({
                ampm: true
            });
            changeExpirationDate(){
                var currentDate = new Date;
                var futureDateTime = (currentDate.getMonth() + 4) + '/' + currentDate.getDate() + '/' + currentDate.getFullYear() + ' ' + formatAMPM(currentDate);
                var expiredDateTime = (currentDate.getMonth() + 1) + '/' + currentDate.getDate() + '/' + currentDate.getFullYear() + ' ' + formatAMPM(currentDate);
                var archivedCheckbox = document.getElementById('cphContent_fmvNewsEventList_chbArchived').checked;
                if(archivedCheckbox == true)
                {
                    document.getElementById('cphContent_fmvNewsEventList_txtExpirationDate').value = expiredDateTime;
                }
                else{
                    document.getElementById('cphContent_fmvNewsEventList_txtExpirationDate').value = futureDateTime;
                }
            };
            function formatAMPM(date) {
                var hours = date.getHours();
                var minutes = date.getMinutes();
                var ampm = hours >= 12 ? 'pm' : 'am';
                hours = hours % 12;
                hours = hours ? hours : 12; // the hour '0' should be '12'
                minutes = minutes < 10 ? '0'+minutes : minutes;
                var strTime = hours + ':' + minutes + ' ' + ampm;
                return strTime;
            };
        });        
    </script>

问题是,当我单击复选框时,我一直收到此 JavaScript 错误“Uncaught ReferenceError:changeExpirationDate 未定义”。任何建议/帮助都非常感谢。

3个回答
});
changeExpirationDate(){    <-- where is the function declaration?
    var currentDate = new Date;

又名

function changeExpirationDate () {
epascarello
2014-01-16

changeExpirationDate(){

更改为

function changeExpirationDate(){

第一个看起来就像您正在尝试调用它;第二个则定义了它。

Matt
2014-01-16

好吧,再看一遍后,我发现这是一个非常愚蠢的错误。我忘记了函数名称 changeExpirationDate() 之前的“函数”,因此,它给了我这个错误。

2myCharlie
2014-01-16