Входное текстовое поле разрешает использовать только одну точку (.) Для цены значения для моего текстового поля, не допускает использование нескольких точек (.) - PullRequest
0 голосов
/ 20 июня 2019

Мне нужно вставить плавающее значение в текстовое поле, разрешить только 0-9 и сигнальную точку (.)

Я пробовал этот код:

<html>
<head>

 <script type="text/javascript" language="javascript"> 

    function isNumberKey(evt) { 
         var charCode = (evt.charCode) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
             return false;
        }
 </script> 


</head>
<body>
<input type="text" id="txtChar" onkeypress="return isNumberKey(event)"  name="txtChar" class="CsstxtChar" maxlength="4"/>
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 20 июня 2019

Вы можете попробовать этот код

<!DOCTYPE html>
<html>

<head>
    <title></title>
</head>

<body>

    <input type="text" id="txtChar" name="txtChar" class="CsstxtChar" maxlength="4" />
    <script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
    <script>
        $('.CsstxtChar').keypress(function (event) {
            if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
                event.preventDefault();
            }
        });

    </script>
</body>

</html>

Спасибо

0 голосов
/ 20 июня 2019

Я бы предложил вам использовать регулярное выражение вместо:

const pattern = new RegExp('[0-9.]');

$('#txtChar').on('keypress', function(e){
	const res =	pattern.test(e.key);
	if(!res) {
		e.preventDefault();
	}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="txtChar" name="txtChar" class="CsstxtChar" maxlength="4"/>
0 голосов
/ 20 июня 2019

jQuery(document).ready(function() {
    $('.float-number').keypress(function(event) {
        if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
            event.preventDefault();
        }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <html>
      <body>
        Enter Number:
        <input type="text" name="number" value="" class="float-number">
      </body>
    </html>
...