Member 7909353 Ответов: 2

Как проверить текстовое поле только для номера.


Я хочу ввести только номер int textbox in asp.net а если ввести символ, то он не будет разрешен и введенное значение мне не покажется.
как пинкод в данной ссылке
https://eaadhaar.uidai.gov.in/

В моем коде я могу ввести символ, затем вызывается функция и проверить ее, а затем удалить.

Я хочу, чтобы пользователь не мог видеть символ, если он введен(символ).

Мой данный код работает над текстовым полем в отдельном элементе управления при нажатии клавиши.

Что я уже пробовал:

<asp:TextBox runat="server" ID="txtPinCode" MaxLength="6" Width="200" onkeypress="return IsValidPinCode(event,this)"></asp:TextBox>

function IsValidPinCode(e, t) {
    try {
        var entered = String.fromCharCode(e.which);

        if (e.keyCode != 8) {
            var regExpression = /^\d{0,6}$/;
            if (!regExpression.test(entered)) {

                e.preventDefault();
            }

        }
        }
    catch (err) {
        alert(err.Description);
    }
}

Calling from c# is not working

protected void grdSavedDDO_RowDataBound(object sender, GridViewRowEventArgs e)
    {
      
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
               
                if ((e.Row.RowState & DataControlRowState.Edit) > 0)
                {                   
                    TextBox txtPinCode = (TextBox)e.Row.FindControl("txtPinCode");
                               
                    txtPinCode.Attributes.Add("onchange", "javascript:return IsValidPinCode('" + e + "','" + this + "')");   
                }

}
}

2 Ответов

Рейтинг:
7

Member 7909353

Не связывайте функцию в c#.
Функция прямого вызова из текстового поля в gridview.

<asp:TextBox ID="txtPinCode" MaxLength="6" runat="server" Text='<%#Eval("PinCode")%>'

                                                Width="90%" onkeypress="return IsValidPinCode(event,this)"></asp:TextBox>


Рейтинг:
0

Thomas Daniels

Если я правильно понимаю, вы просто хотите "отменить" нажатие клавиши, если это не цифра. Добавить а onkeypress событие и привязать его к этой функции:

function pinCodeKeyPress(e) {
    var entered = String.fromCharCode(e.which); // e.which is an integer: the char code. 'entered' is a single-character string
    var regExpression = /^[0-9]$/;
    if (!regExpression.test(entered)) {
        e.preventDefault(); // 'cancel' event, the char won't appear in the textbox
    }
}

Важный: не полагайтесь только на проверку на стороне клиента! Пользователь может легко отключить эту проверку. Не забудьте также добавить своего рода проверку на вашем сервере.