动态禁用jQuery Datepicker图标

Jon*_*onn 5 asp.net jquery-ui datepicker

我对jQuery很新,我一直在寻找一个体面的免费日期选择器.我对jQuery UI的datepicker非常满意,但我遇到了麻烦.我正在使用它的项目要求我在文本框旁边有一个图标.虽然这很容易,但我不知道如何动态禁用图标.

我有兴趣知道两件事:

  1. 如何从代码隐藏中动态更改datepicker的禁用状态,以便在回发时触发?
  2. 是否可以使其禁用状态取决于它所附加的文本框?(即如果

    <asp:TextBox Id="txtMyTextBox" Enabled="false">

然后datepicker也被禁用了.

这是我一直用于datepicker的代码.

<script type="text/javascript">
    $(function() {
        $("*[id$='txtMyTextBox']").datepicker({
            changeMonth: true,
            changeYear: true,
            showOn: 'button',
            buttonImage: '/images/icon-calendar.gif',
            buttonImageOnly: true
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

cho*_*bo2 11

那么如果你使用jquery UI datepicker为什么不使用内置的disable命令呢?所以回帖后你只需禁用它.

当然文本框也会被禁用,但我认为这也是你想要的.

// jquery ui有一个自动显示的内置图标 http://jqueryui.com/demos/datepicker/#icon-trigger

//如何禁用jquery ui. http://jqueryui.com/demos/datepicker/#method-disable

以下是发布回发后如何禁用该框.我不清楚你是否希望在他们在文本框中输入内容之后立即发生这种情况.

Default.aspx的

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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 runat="server">
    <title></title>
    <link href="ui.all.css" rel="stylesheet" type="text/css" />
        <link href="ui.core.css" rel="stylesheet" type="text/css" />
    <link href="ui.datepicker.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>


    <script type="text/javascript">
        $(function()
        {

            $("#txtMyTextBox").datepicker({ showOn: 'button', buttonImage: 'images/calendar.gif', buttonImageOnly: true });
            var disabled = $('#txtMyTextBox').attr('disabled');
            if (disabled == true)
            {
                $("#txtMyTextBox").datepicker('disable');
            }
            else
            {
                $("#txtMyTextBox").datepicker('enable');
            }


        });


</script>



</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="txtMyTextBox" runat="server" Enabled="false"></asp:TextBox>
        <asp:Button ID="enable" runat="server" Text="enable" onclick="enable_Click" 
            style="width: 56px" />
        <asp:Button ID="disable" runat="server" Text="disable" 
            onclick="disable_Click" />

    </div>

    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

代码背后

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{


    protected void enable_Click(object sender, EventArgs e)
    {
        txtMyTextBox.Enabled = true;
    }
    protected void disable_Click(object sender, EventArgs e)
    {
        txtMyTextBox.Enabled = false;
    }
}
Run Code Online (Sandbox Code Playgroud)