【问题标题】:Uncaught ReferenceError: functionName is not defined未捕获的 ReferenceError:未定义函数名
【发布时间】:2014-01-16 19:36:47
【问题描述】:

我已经检查了这个threadthis one,但它并没有真正帮助我。

我有一个如下所示的 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 错误“未捕获的 ReferenceError:changeExpirationDate 未定义”。非常感谢任何建议/帮助。

【问题讨论】:

    标签: javascript


    【解决方案1】:
    });
    changeExpirationDate(){    <-- where is the function declaration?
        var currentDate = new Date;
    

    又名

    function changeExpirationDate () {
    

    【讨论】:

    • 谢谢!这是一个非常愚蠢的错误——完全忘记了。
    【解决方案2】:

    改变

    changeExpirationDate(){
    

    function changeExpirationDate(){
    

    第一个让你看起来像是在尝试调用它;第二个定义它。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 当然,但是如果你在.ready() 这样的回调中声明它仍然会失败。分配为 HTML 属性的处理程序在全局范围内执行。
      猜你喜欢
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      相关资源
      最近更新 更多