Подтвердить что ты не робот

Тип ввода для HTML-формы для целого

Ниже приведен код из HTML-формы. Если ввод должен быть целым числом, мне нужно изменить "тип"?

<div class="friend2title">
    <label for="url">Add points:</label>
</div> 
<div class="friend2field">
    <input name="state" type="text" id="state" maxlength="150">
</div>
4b9b3361

Ответ 1

Если вы используете HTML5, вы должны использовать тип ввода number. Если вы используете xhtml или html 4, тип ввода должен быть text.

Ответ 2

<input type="number" step="1" ...

Добавляя атрибут step, вы ограничиваете ввод целыми числами.

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

Ответ 3

Это может помочь:

<input type="number" step="1" pattern="\d+" />

step предназначен для удобства (и может быть установлен в другое целое), но pattern выполняет некоторые фактические принудительные действия.

Обратите внимание, что поскольку pattern соответствует всему выражению, нет необходимости выражать его как ^\d+$.

Даже с этим жестким регулярным выражением, реализациями Chrome и Firefox, интересно здесь e (предположительно для научной нотации), а также - для отрицательных чисел, а Chrome также позволяет использовать ., тогда как Firefox более жесткий отказ, если только . не следует 0. (Firefox помечает поле красным цветом на входе, теряющем фокус, в то время как Chrome не позволяет вводить недопустимые значения в первую очередь.)

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

Ответ 4

До HTML5 input type = "text" просто означает поле для вставки свободного текста, независимо от того, кем вы хотите. это работа валидации, которую вы должны были бы сделать, чтобы гарантировать, что пользователь вводит действительный номер

Если вы используете HTML5, вы можете использовать новые типы ввода, один из которых номер, который автоматически проверяет ввод текста и заставляет его быть числом

помните, что если вы создаете приложение на стороне сервера (например, php), вам все равно придется проверять ввод на этой стороне (убедитесь, что это действительно номер), так как довольно легко взломать html и измените тип ввода, удалив проверку браузера

Ответ 5

Нет, речь идет не о типе данных ввода. Он определяет тип управления для создания:

type = text | password | checkbox | radio | submit | reset | file | hidden | image | button [CI]     Этот атрибут определяет тип создаваемого элемента управления. Значение по умолчанию для этого атрибута - "текст".

Ответ 6

Даже если вы хотите принимать номера для ввода, я бы рекомендовал использовать тип text.

<input type="text" name"some-number" />

На клиентской стороне выполняются некоторые проверки jQuery, чтобы проверить их число.

Затем в вашем серверном коде выполните некоторую проверку, чтобы убедиться, что это фактически числовое значение.