2015-06-18 2 views
1

У меня есть эта страница, где я использую номер типа ввода. так что он покажет цифровую клавиатуру на wp, устройстве android и ios.Html5 ввод тип число форматирование

Но моя проблема в том, что если пользователь использует информацию о культуре на устройстве. - говорит Дания. вместо используемой цифровой клавиатуры.

Но номер входа не принимается, только. Кто-нибудь понял, как это можно сделать?

Спасибо за ваше время.

+0

Какая у вас рекламная страница? –

+0

это страница html5. включая jquery angularjs и bootstrap – DaCh

ответ

0

При получении значения с помощью jquery возвращается с. десятичный разделитель. Попробуйте это:

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
    <meta charset="utf-8"> 
    <title>JS Bin</title> 
</head> 
<body> 
    <input type="number" name="myNum" id="myNum"> 
    <button id="submit">Submit</button> 
    <hr/> 
    <code></code> 
    <script> 
    $("#submit").on("click",function() { 
     var numericValue = $("#myNum").val(); 
     $("code").html(numericValue); 
    }); 
    </script> 
</body> 
</html> 

http://output.jsbin.com/xixunewowe

+0

Но он ничего не выводит, если мы вводим числовое значение с помощью ',' – Identity1

+0

Это делает для меня в Chrome на Windows. Какой браузер и устройство вы используете? –

+0

В моем примере я не представляю форму. Я использую jquery для получения значения. При отправке формы входная проверка html5 запускается и, возможно, вызывает проблемы? –

0

Попробуйте установить атрибут lang к en в <html> элемента или сам элемент <input>, чтобы заставить десятичную точку в качестве синтаксиса входного сигнала. Например:

<input type="number" name="myNum" id="myNum" lang="en"> 

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

Это хороший записи из обработки локали для типа ввода номера: https://www.aeyoun.com/posts/html5-input-number-localization.html

ОБНОВЛЕНИЕ:

Другой альтернативой было бы, чтобы остановить форму от проверки ввода с помощью атрибута novalidate в <form> элемент, например, так:

<form novalidate> 
    <input type="number" name="myNum" id="myNum"> 
    <button id="submit">Submit</button> 
</form> 

Это позволило бы ничего, даже не-числа, так что вам придется создать код JavaScript, чтобы проверить и час и значение.

UPDATE РАЗ:

Просто подумал, что еще одной альтернативной — использовать атрибут pattern делать регулярные проверки выражений и использовать обычный старый тип text ввода. Например:

<input type="text" name="myNum" id="myNum" pattern="[0-9.]*"> 

Преимущество: вы можете точно контролировать, какие пользователи могут вводить.

Недостаток: клавиатура на мобильных устройствах не будет цифровой клавиатурой.

Обратите внимание, что типы ввода HTML могут быть подделаны, поэтому вам все равно необходимо выполнить проверку на стороне сервера.

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