введите одну десятичную точку только в текстовом поле HTML

0

Я нашел много ссылок на этот вопрос, но никто не ответил на проблему правильно (полностью). Как ограничить пользователя разрешить только одну десятичную точку в текстовом поле. 1.3, 5.6 и т.д. (Пользователь не может ввести два десятичных знака). А также пользователь не может копировать вставить другие недопустимые данные в текстовое поле.? Как достичь этого в javascript или jquery?

  • 0
    Пожалуйста, опубликуйте свой код и демонстрацию, чтобы воспроизвести конкретную проблему, которая у вас есть.
  • 0
    сколько чисел перед десятичной дробью?
Показать ещё 5 комментариев
Теги:

3 ответа

1

Для этого вам не обязательно нужен javascript, используйте атрибут шаблона HTML5 для ввода:

<form>
    <input type="text" required pattern="[-+]?(\d*[.])?\d+">
</form>

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

  • 0
    Это работало в Firefox. Но не уверен, будет ли он работать во всех браузерах и во всех версиях. (Забудьте IE. Однако ничего не работает в IE :)
  • 0
    Он работает только в IE 8.0+ caniuse.com/#feat=forms , однако для этого и нужны связанные полифилы! Взгляните на список html5 форм-заполнителей, вы можете заполнить пробел для <IE 8.0
0

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

вы можете добавить эту функцию в свой файл javascript, который позволит использовать только одну десятичную точку в этом конкретном текстовом поле:

function oneDecimalOnly(element) {

  var charCodeEnteredEntered = (event.which) ? event.which :
    (window.event.keyCode) ? window.event.keyCode : -1;

  // '.' decimal point  
  if (charCodeEnteredEntered === 46) {

    // Allow only 1 decimal point
    if ((element.value) && (element.value.indexOf('.') >= 0))
      return false;
    else
      return true;
  }
  return false;
}
<form>
  <input type="text" name="decimal" id="decimal" onkeypress="return oneDecimalOnly(this);">
</form>

Надеюсь, все будет хорошо. Для получения дополнительной информации посетите http://www.c-sharpcorner.com/blogs/allow-only-numeric-values-and-allow-only-one-dot-in-textbox-using-javascript1, я нашел ее очень полезной.

0

Я думаю, вам это нужно: Formance.js github: https://github.com/omarshammas/jquery.formance

Ещё вопросы

Сообщество Overcoder
Наверх
Меню