2013-12-02 3 views
0

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

+0

Пожалуйста, разместите свой код до сих пор и демоверсию, чтобы воспроизвести конкретную проблему, которая у вас есть. – elclanrs

+0

Сколько чисел перед десятичным? –

+0

Подсказка для вас ... разделите строку относительно точки (.), Тогда массив, который вы получите, должен иметь длину 2 в случае одной десятичной точки ... вы можете использовать эту информацию .... для кода – AurA

ответ

1

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

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

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

+0

Он работал в firefox. Но не уверен, будет ли он работать во всех браузерах и во всех версиях. (Забудьте IE. Однако ничто не работает в IE :) – Stunner

+0

Он работает только в IE 8.0+ http://caniuse.com/#feat=forms, однако это то, на что связаны полисы для! Посмотрите на список полиномов формы html5, вы можете заполнить пробел для bagonyi

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, я нашел это очень полезным.

Смежные вопросы