Well, if you are using the jquery UI datepicker, why not use the built-in disable command? Therefore, in response to a message, you simply turn it off.
Of course, the text box will also be disabled, but I assume you want this too.
// jquery ui has a built-in icon that automatically appears http://jqueryui.com/demos/datepicker/#icon-trigger
// how to disable jquery ui. http://jqueryui.com/demos/datepicker/#method-disable
Here's how to disable a field as soon as a message appears. I donโt understand if you want this to happen immediately after entering something in the text box or not, though.
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>
code for
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; } }
source share