TextBox 숫자만 입력


ASP.NET 의 TextBox 에 날짜를 입력받기 위해 Client Script를 붙혀봤습니다. 숫자만 입력을 받을때 응용해서 사용할 수 있겠군요. keydown, fouce, blur 이벤트에서 사용할 function입니다.

<asp:TextBox ID="txt일자" runat="server" Width="80px" TabIndex="4" Style="text-align: center; ime-mode: disabled;" onkeydown="checkInputDate(this);" onkeypress="checkInputDate(this);" onblur="setDateFormat(this);" onfocus="resetDateFormat(this);" />

jQuery를 사용

$(document).ready( function(){ $("#btnSearch").click( function(){ if($("#txtFr").val() == ""){ alert("조회 시작일자를 입력하세요."); $("#txtFr").focus(); return false; } else if($("#txtTo").val() == ""){ alert("조회 종료일자를 입력하세요."); $("#txtTo").focus(); return false; } else{ var form = $("#MyForm"); form.submit(); } });

        $("#txtFr,#txtTo").keydown(
            function(e){
                if (e.keyCode == 8 || e.keyCode == 9 || e.keyCode == 46) {
                    return true;
                }
                else if ( (e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105) ) {
                    if ($(this).val().length >= 10) {
                        e.returnValue = false;
                        return false;
                    }

                    return true;
                }
                else {
                    e.returnValue = false;
                    return false;
                }
            });

        $("#txtFr,#txtTo").focus(
            function(){
                var val = $(this).val();
                $(this).val(val.replace(/-/gi, ""));
            });

        $("#txtFr,#txtTo").focusout(
            function(){
                var val = $(this).val();
                if (val.length == 8) {
                    $(this).val(val.substr(0, 4) + "-" + val.substr(4, 2) + "-" + val.substr(6, 2));
                }
            });
    });