шаблон не работает при вводе номера? - PullRequest
0 голосов
/ 12 марта 2019

Почему шаблон во входном номере не работает, у меня ошибка сервера, когда я пишу 1.1, 1,1, потому что в методе контроллера mvc я должен принять тип int.

<input type="number" name="Quantity" min="1" title="Пожалуйста, введите количество" placeholder="кол-во" pattern="\d+" required />

нужное право работы.

Как заставить шаблон иметь только целочисленное значение?

Ответы [ 3 ]

1 голос
/ 12 марта 2019

Заключение вашего ввода в form заставит проверку вступить в силу - она ​​не ограничит то, что люди могут печатать, но остановит отправку формы, если введенный ввод не является целым числом.

const calc = () => alert("It worked!")
<form onSubmit="calc()">
  <input
    type="number"
    name="Quantity"
    min="1"
    title="Only ints please"
    placeholder="Type here..."
    pattern="\d+"
    required
  />
  
  <input type="submit">
</form>

Если вы хотите ограничить то, что вводится в первую очередь, вам понадобится более сложный JavaScript для этого - см. этот ответ для примера того, как это сделать.

0 голосов
/ 12 марта 2019

Вы должны использовать javascript, так как ввод содержит «1.1» или «1», а не 1.1 или 1. Или вы можете преобразовать строку в int в вашем контроллере.

В JS вы можете использовать parseInt (число, основание), например

let i = "42.5243";

let j = parseInt(i);
console.log(j); // 42

РЕДАКТИРОВАТЬ с фрагментом в комментарии:

<input type="number" name="Quantity" title="Пожалуйста, введите количество" placeholder="кол-во" pattern="\d+" required oninput="validity.valid ? this.save = value : value = this.save;" />

это не позволит пользователю кодировать что-либо еще, кроме целого числа.

0 голосов
/ 12 марта 2019

Попробуйте \d+([.,]\d+)?.

«Цифры, возможно, за которыми следуют . или , и более цифр».

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