jquery datepicker没有弹出?

时间:2011-09-15 16:59:51

标签: c# javascript jquery asp.net html

我从IE7中得到这些错误:

  

第22行:对象不支持此属性或方法行142:   无效的论点

我正在尝试在文本框上做一个日期选择器:

    <script>
        jQuery(function($) {
       $("#<%= report_dateTextBox.ClientID %>").mask("99/99/9999");
$("#<%= occurrence_dateTextBox.ClientID %>").datepicker();
    });

这是文本框:

<asp:TextBox ID="occurrence_dateTextBox" runat="server" size="50"/>

这是完整的代码:

http://pastebin.com/Z08r6vMp

.mask在添加datepicker之前工作正常,但现在都无法正常工作。

我做错了什么?

作为TT。建议我把它改成这个:

jQuery(function($) {
        //$("#occurrence_dateTextBox").mask("99/99/9999");
        //$("#<%= report_dateTextBox.ClientID %>").mask("99/99/9999");
        //$("#<%= occurrence_dateTextBox.ClientID %>").datepicker();
        $(".datepicker").datepicker(); 

    });

  <asp:TextBox ID="occurrence_dateTextBox" runat="server" size="50" class="datepicker"/>

仍然无效

1 个答案:

答案 0 :(得分:4)

occurence_dateTextBox是控件的服务器ID,您需要客户端ID。您还需要对report_dateTextBox执行相同的操作。我不确定之前是怎么回事。

尝试

$("#<%= report_dateTextBox.ClientID %>").mask("99/99/9999");
$("#<%= occurrence_dateTextBox.ClientID %>").datepicker();

<强>更新

以下是您网页的简化版。任何不必要的代码都已删除。

请注意,您的旧版本包含多个版本的jQuery,一个来自Googles CDN,另一个来自本地。现在它从CDN中提取jQuery和UI。

您可以将其复制并粘贴到新的.aspx页面中,它会起作用。

在您自己的版本上,我建议使用Firefox和Firebug,只是查看控制台以获取确切的错误消息,因为它来自除了以下代码之外的其他内容。你可能没有正确地提取jQuery UI,或者你的其他一个javascript调用被破坏了,这导致了datepicker的问题。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js" type="text/javascript"></script>
    <script>

        jQuery(function($) {
            //$("#occurrence_dateTextBox").mask("99/99/9999");
            //$("#<%= report_dateTextBox.ClientID %>").mask("99/99/9999");
            $("#<%= occurrence_dateTextBox.ClientID %>").datepicker();
            //$(".datepicker").datepicker(); 

        });

    </script>
</head>
<body><div id="container">
    <form id="form1" runat="server" class="niceform">

        <fieldset>

        <legend>Section A</legend>

        <dl>

            <dt><label for="occurrence_dateTextBox" class="datepicker">Occurrence Date:</label></dt>
            <dd><asp:TextBox ID="occurrence_dateTextBox" runat="server" size="50"/></dd>
        </dl>

        <dl>

            <dt><label for="report_dateTextBox">Report Date:</label></dt>
            <dd><asp:TextBox ID="report_dateTextBox" runat="server" size="50"/></dd>
        </dl>

        </fieldset>       

        <asp:Button ID="Button1" runat="server" Text="Button" />


    </form>
</div></body>
</html>