защитите текстовое поле, чтобы оно не принимало это пустое значение после очистки предыдущего значения

#javascript #jquery #asp.net #asp.net-mvc #asp.net-mvc-3

#javascript #jquery #asp.net #asp.net-mvc #asp.net-mvc-3

Вопрос:

Я хочу защитить текстовое поле, чтобы оно не принимало никаких значений, кроме чисел. Чего я добился с помощью следующего кода

 function allowOnlyNumber(evt) { 
    var charCode = (evt.which) ? evt.which : event.keyCode 
    if (charCode > 31 amp;amp; (charCode < 48 || charCode > 57)) 
        return false; 
    return true;  
}
  

Проблема в том, что когда я ввожу число в текстовое поле и сохраняю, нажав кнопку ОБНОВЛЕНИЯ, связанную с ним, оно сохраняется, что и ожидалось. но во второй раз, когда я выбираю номер из этого текстового поля и очищаю его с помощью клавиш Delete или Backspace с клавиатуры и нажимаю на связанную с ним кнопку ОБНОВЛЕНИЯ, пустое значение обновляется.

Как я могу защитить текстовое поле, чтобы оно не принимало это пустое значение? Оно должно сохранять предыдущее допустимое значение.

Комментарии:

1. проверьте, что оно не равно ""

2. Добро пожаловать в SO. если вы хотите получить ответ, специфичный для вашего кода, включая отправку, пожалуйста, опубликуйте весь код. в противном случае мы можем дать вам только общие ответы.

3. Имеет ли текстовое поле какие-либо значения после начальной загрузки? Или оно изначально пустое?

4. @Maibub Patil чего еще вы ожидаете, вы нажимаете кнопку обновления. Вам необходимо применить обязательную проверку поля к вашему текстовому полю.

Ответ №1:

Используйте этот фрагмент кода для функции OnLoad

 var preVal = $("#txt").val();
$("#txt").change(function()
    {
        if($(this).val().trim() == '')
        {
            $(this).val(preVal);
        }
        preVal = $("#txt").val();
    }
);
  

Рабочая скрипка здесь

Ответ №2:

Вы можете использовать $.trim() метод jQuery, чтобы предотвратить отправку пустого значения.

Попробуйте с этим, как:

 var elem = $('yourelemId').val(); // get the specific value
if($.trim(elem) === ""){ // use trim to remove any whitespace
   alert('Your alert msg here');
   e.preventDefault();
} 
  

Ответ №3:

Сделайте это.. Короткий код, вообще не принимающий числа.

 $("#txt").keyup(function() { 
    this.value = this.value.replace(/[^a-zA-Z.]/g,'');
});
  

работаем здесь http://jsfiddle.net/kz573/1 /