Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用附加javascript强制设置日期文本框的格式在FireFox中不起作用_Javascript_.net_Firefox - Fatal编程技术网

使用附加javascript强制设置日期文本框的格式在FireFox中不起作用

使用附加javascript强制设置日期文本框的格式在FireFox中不起作用,javascript,.net,firefox,Javascript,.net,Firefox,我试图强制格式化的文本框在IE 8-11和Chrome中工作,但在Firefox中不工作。问题是,在Firefox中,您根本无法更改文本框中的值。它只是卡住了,唯一改变值的方法是盒子旁边的日历。以下是我在相关字段中使用的方法: public static void RegisterMask(System.Web.UI.Page Caller) { System.Text.StringBuilder strMask = new System.Text.Strin

我试图强制格式化的文本框在IE 8-11和Chrome中工作,但在Firefox中不工作。问题是,在Firefox中,您根本无法更改文本框中的值。它只是卡住了,唯一改变值的方法是盒子旁边的日历。以下是我在相关字段中使用的方法:

     public static void RegisterMask(System.Web.UI.Page Caller)
     {
        System.Text.StringBuilder strMask = new System.Text.StringBuilder();

        strMask.Append("<script language=\"javascript\">");
        strMask.Append("function maskKeyPress(objEvent) {");
        strMask.Append(" var iKeyCode = objEvent.keyCode;  ");
        strMask.Append("if(iKeyCode>=48 && iKeyCode<=57){return true;}");
        strMask.Append("else{");
        strMask.Append("return false;}}");
        strMask.Append("</script>");
        strMask.Append("<script language=\"javascript\">");
        strMask.Append(" function mask(str,textbox,loc,delim,event){");
        strMask.Append("if (maskKeyPress(event)== false){return false;}");
        strMask.Append("var locs = loc.split(',');");
        strMask.Append("for (var i = 0; i <= locs.length; i++){");
        strMask.Append("for (var k = 0; k <= str.length; k++){");
        strMask.Append(" if (k == locs[i]){");
        strMask.Append(" if (str.substring(k, k+1) != delim){");
        strMask.Append("   str = str.substring(0,k) + delim + str.substring(k,str.length)}}}}textbox.value=str}");
        strMask.Append("</script>");
        System.Web.UI.ScriptManager.RegisterClientScriptBlock(Caller, Caller.GetType(), "Mask", strMask.ToString(), false);
     }
 protected override void Page_Load(object sender, EventArgs e)
 {
    RegisterMask(this.Page);

    if (!Page.IsPostBack) 
    { 
        pMask(this.Page, ref txtStart, "/", "2,5");
        pMask(this.Page, ref txtEnd, "/", "2,5");
    }
 }
            <cs:Row runat="server" ID="rwStartDate">
                <LabelTemplate><asp:Label runat="server" ID="lbltxtStart"      AssociatedControlID="txtStart">Start</asp:Label></LabelTemplate>
                <ControlTemplate>
                    <asp:TextBox runat="server" ID="txtStart" Width="100" EnableViewState="true" AutoPostBack="true"/>
                    <asp:RequiredFieldValidator runat="server" ID="rfvStartDate" ControlToValidate="txtStart" ErrorMessage="Invalid Date" SetFocusOnError="true" CssClass="validator">*</asp:RequiredFieldValidator>
                    <asp:CustomValidator runat="server" ID="csvStart" ControlToValidate="txtStart" ErrorMessage="Invalid Date" SetFocusOnError="true" CssClass="validator" ClientValidationFunction="Validator.validateDate" />
                    <asp:HyperLink NavigateUrl="#" runat="server" ID="lnkCalStart" ToolTip="Toggle Calendar" CssClass="calendar" />
                    <ajax:CalendarExtender runat="server" ID="ajxStart" OnClientDateSelectionChanged="calendarExtenderHelper" Animated="false" PopupPosition="Right" Format="M/d/yyyy" TargetControlID="txtStart" PopupButtonID="lnkCalStart" BehaviorID="ajxCalStart" />
                </ControlTemplate>
            </cs:Row>

原来是firefox不支持onkeypress,需要改为onkeyup。numpad也有问题,需要另一组密钥码