jQuery: что лучший способ состоит в том, чтобы ограничить “число” - только введенный для текстовых полей? (позвольте десятичные точки),

Все переменные, перечисленные в файле .env, будут загружены в суперглобальный

Все переменные, перечисленные в файле [111], будут загружены в суперглобальный [112] PHP, когда ваше приложение получит запрос. Оформить заказ страница конфигурации Laravel

Все переменные, перечисленные в файле .env, будут загружены в суперглобальный

Все переменные, перечисленные в файле [111], будут загружены в суперглобальный [112] PHP, когда ваше приложение получит запрос. Оформить заказ страница конфигурации Laravel

[110]ENV PHP, когда ваше приложение получит запрос. Оформить заказ страница конфигурации Laravel

[110]ENV['yourkeyhere'];
ENV
PHP, когда ваше приложение получит запрос. Оформить заказ страница конфигурации Laravel

[110]

226
задан Juan Castillo 27 December 2018 в 06:13
поделиться

9 ответов

Обновление

Для этого есть новое и очень простое решение:

Оно позволяет использовать любой фильтр ввода для текста , включая различные числовые фильтры. Это правильно обработает Копировать + Вставить, Перетащить + Drop, сочетания клавиш, операции контекстного меню, нетипичные клавиши и все раскладки клавиатуры.

См. этот ответ или попробуйте сами на JSFiddle .

jquery.numeric plugin

Я успешно реализовал многие формы с плагином jquery.numeric .

$(document).ready(function(){
    $(".numeric").numeric();
});

Кроме того, это работает и с текстовыми полями!

Однако обратите внимание, что Ctrl + A, Копировать + Вставить (через контекстное меню) и Перетащить + Drop будут не работает должным образом.

HTML 5

При более широкой поддержке стандарта HTML 5 мы можем использовать атрибут шаблон и тип число для ] input элементов для ограничения ввода только числа. В некоторых браузерах (особенно в Google Chrome) он также ограничивает вставку нечислового содержимого. Дополнительная информация о номере и других новых типах ввода доступна здесь .

193
ответ дан 23 November 2019 в 03:51
поделиться

Вы можете использовать плагин Validation с его методом number () .

$("#myform").validate({
  rules: {
    field: {
      required: true,
      number: true
    }
  }
});
25
ответ дан 23 November 2019 в 03:51
поделиться

Внутренне, NSTimers ​​все реализованы на одном аппаратном таймере. ОС ведет централизованный список таймеров для всех запущенных приложений и просто планирует один аппаратный таймер для самого раннего события.

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

Учитывая время, которое вы цитируете, я предполагаю, что этот таймер является синхронизацией frameupdate для игры или чего-то подобного. Я бы предложил пару вещей:

  1. Разделите текущий код рисования в отдельный поток и запустите в нем свой (тот же) код таймера.

2
ответ дан 23 November 2019 в 03:51
поделиться

Просто прогоните содержимое через parseFloat (). Он вернет NaN при недопустимом вводе.

3
ответ дан 23 November 2019 в 03:51
поделиться

Если вы хотите ограничить ввод (в отличие от проверки), вы можете работать с ключевыми событиями. что-то вроде этого:

<input type="text" class="numbersOnly" value="" />

И:

jQuery('.numbersOnly').keyup(function () { 
    this.value = this.value.replace(/[^0-9\.]/g,'');
});

Это сразу дает пользователю понять, что он не может вводить альфа-символы и т. д., а не позже на этапе проверки.

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

286
ответ дан 23 November 2019 в 03:51
поделиться

I just found an even better plug-in. Gives you much more control. Say you have a DOB field where you need it be numeric but also accepts "/" or "-" characters.

It works great!

Check it out at http://itgroup.com.ph/alphanumeric/.

1
ответ дан 23 November 2019 в 03:51
поделиться

jquery. В числовом плагине есть несколько ошибок, о которых я уведомил автора. Он позволяет использовать несколько десятичных знаков в Safari и Opera, и вы не можете вводить backspace, клавиши со стрелками или несколько других управляющих символов в Opera. Мне нужен был положительный целочисленный ввод, поэтому в конце концов я просто написал свой собственный.

$(".numeric").keypress(function(event) {
  // Backspace, tab, enter, end, home, left, right
  // We don't support the del key in Opera because del == . == 46.
  var controlKeys = [8, 9, 13, 35, 36, 37, 39];
  // IE doesn't support indexOf
  var isControlKey = controlKeys.join(",").match(new RegExp(event.which));
  // Some browsers just don't raise events for control keys. Easy.
  // e.g. Safari backspace.
  if (!event.which || // Control keys in most browsers. e.g. Firefox tab is 0
      (49 <= event.which && event.which <= 57) || // Always 1 through 9
      (48 == event.which && $(this).attr("value")) || // No 0 first digit
      isControlKey) { // Opera assigns values for control keys.
    return;
  } else {
    event.preventDefault();
  }
});
54
ответ дан 23 November 2019 в 03:51
поделиться

Проверьте этот код find для использования в базе данных:

function numonly(root){
    >>var reet = root.value;
    var arr1 = reet.length;
    var ruut = reet.charAt(arr1-1);
    >>>if (reet.length > 0){
        var regex = /[0-9]|\./;
        if (!ruut.match(regex)){
            var reet = reet.slice(0, -1);
            $(root).val(reet);
        >>>>}
    }
}
//Then use the even handler onkeyup='numonly(this)'
2
ответ дан 23 November 2019 в 03:51
поделиться
    $(".numeric").keypress(function(event) {
  // Backspace, tab, enter, end, home, left, right
  // We don't support the del key in Opera because del == . == 46.
  var controlKeys = [8, 9, 13, 35, 36, 37, 39];
  // IE doesn't support indexOf
  var isControlKey = controlKeys.join(",").match(new RegExp(event.which));
  // Some browsers just don't raise events for control keys. Easy.
  // e.g. Safari backspace.
  if (!event.which || // Control keys in most browsers. e.g. Firefox tab is 0
      (49 <= event.which && event.which <= 57) || // Always 1 through 9
      (48 == event.which && $(this).attr("value")) || // No 0 first digit
      isControlKey) { // Opera assigns values for control keys.
    return;
  } else {
    event.preventDefault();
  }
});

Этот код работал довольно хорошо, мне просто пришлось добавить 46 в массив controlKeys, чтобы использовать точку, хотя я не думаю, что это лучший способ сделать это ;)

1
ответ дан 23 November 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: