如何使用 javascript 更改 MaskEditExtender 的属性 Mask 的值

How to change value of MaskEditExtender's attribute Mask using javascript

我有一个项目,其中有文本框,我在其中实现了 MaskEditExtender 并像这样设置了 Mask 属性的值

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

<script src="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<title></title>
<script>
    $(document).ready(function () {
        //$("#TextBox1").val('00.0000');
        debugger;
        document.getElementById('TextBox1').value = "00.0000";
    });
    function CallMe() {
        debugger;
        if (document.getElementById('CheckBox1').checked) {

            $find("MaskedEditExtender1").set_Mask("99.99");
            document.getElementById('TextBox1').value = "00.00";
        } else {
            $find("MaskedEditExtender1").set_Mask("99.9999");
            document.getElementById('TextBox1').value = "00.0000"
        }
    }
</script>
</head>
<body>
  <form id="form1" runat="server">
   <div>
    <asp:ToolkitScriptManager ID="ScriptManager1" runat="server" />
    <%--<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>--%>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:CheckBox ID="CheckBox1" runat="server"    onchange="javascript:CallMe()" />
      <asp:MaskedEditExtender ID="MaskedEditExtender1" runat="server" 
        TargetControlID="TextBox1" BehaviorID="MaskedEditExtender1"    Mask="99.9999"
       MessageValidatorTip="true" MaskType="Number"    InputDirection="LeftToRight"
    AcceptNegative="None" ErrorTooltipEnabled="True" >
     </asp:MaskedEditExtender>
   </div>
    </form>
  </body>
   </html>

我已经在 $(document).ready 函数中初始化了文本框值。我的任务是在更改复选框时更改掩码值。这个任务我用 javascript 函数 "CallMe" 完成了。所有代码都可以正常工作,但是当用户单击文本框时。文本框值从“00.00”更改为“00.0000”,即 MaskEditExtender 的 Mask 属性的初始值。

请帮帮我!

       <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>
       <%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit"     Assembly="AjaxControlToolkit" %>
        <!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">

<script src="Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<title></title>
<script>
    $(document).ready(function () {
        //$("#TextBox1").val('00.0000');
        debugger;
        document.getElementById('TextBox1').value = "00.0000";
    });
    function CallMe() {
        debugger;
        if (document.getElementById('CheckBox1').checked) {
            $find("MaskedEditExtender1")._MaskConv = "99.9";
            //$find("MaskedEditExtender1").set_Mask("99.9");
            //$find("MaskedEditExtender1")._convertMask();
            document.getElementById('TextBox1').value = "00.0";
            alert($find("MaskedEditExtender1").get_Mask());
        }
        else {
            $find("MaskedEditExtender1")._MaskConv = "99.9999";
            //$find("MaskedEditExtender1").set_Mask("99.9999");
            //$find("MaskedEditExtender1")._convertMask();
            document.getElementById('TextBox1').value = "00.0000"
            alert($find("MaskedEditExtender1").get_Mask());
        }
    }

    function txtBox1_ClientClicked() {
       //            alert($find("MaskedEditExtender1").get_Mask());
       //            $find("MaskedEditExtender1").set_Mask("99.9");
      //            document.getElementById('TextBox1').value = "00.0";
        alert($find("MaskedEditExtender1").get_Mask());
    }
   </script>
   </head>
   <body style="height: 137px">
   <form id="form1" runat="server">
   <div>
  <asp:ToolkitScriptManager ID="ScriptManager1" runat="server" />
   <%--<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>--%>
    <asp:TextBox ID="TextBox1" runat="server" onclick="txtBox1_ClientClicked()"></asp:TextBox>
    <asp:CheckBox ID="CheckBox1" runat="server" onchange="javascript:CallMe()" />
<asp:MaskedEditExtender ID="MaskedEditExtender1" runat="server" 
    TargetControlID="TextBox1" Mask="99.9999"
    MessageValidatorTip="true" MaskType="Number" InputDirection="LeftToRight"
    AcceptNegative="None" ErrorTooltipEnabled="True" >
</asp:MaskedEditExtender>
</div>
</form>
     </body>
 </html>

要使用 javascritp 更改掩码值,我们可以使用 _MaskConv 或 .set_Mask("new value") 并结合 _convertMask 函数。