Я нашел много ссылок на этот вопрос, но никто не ответил на проблему правильно (полностью). Как ограничить пользователя разрешить только одну десятичную точку в текстовом поле. 1.3, 5.6 и т.д. (Пользователь не может ввести два десятичных знака). А также пользователь не может копировать вставить другие недопустимые данные в текстовое поле.? Как достичь этого в javascript или jquery?
Для этого вам не обязательно нужен javascript, используйте атрибут шаблона HTML5 для ввода:
<form>
<input type="text" required pattern="[-+]?(\d*[.])?\d+">
</form>
Как только вы попытаетесь отправить форму, браузер должен показать сообщение об ошибке. В старых браузерах вы можете заполнить эту несуществующую функциональность.
Я знаю, что это очень поздний ответ на этот вопрос, но поскольку здесь нет удовлетворительного ответа, я поделюсь своим решением для будущих ссылок.
вы можете добавить эту функцию в свой файл 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, я нашел ее очень полезной.
Я думаю, вам это нужно: Formance.js github: https://github.com/omarshammas/jquery.formance