Проверка типа номера Тип Javascript

0

Привет, у меня есть эта проблема. В моем html-коде я не могу подтвердить свой тип ввода "числа". Iv'e использовал этот код, чтобы попытаться его проверить, но он не работает

function validateForm()
{
var x=document.forms["form_name"]["number_name"].value;
if (x==null || x=="")
  {
  alert("The following must be filled out");
  return false;
  }
}

Я взял этот код с веб-сайта, который проверяет тип ввода "текст", а не цифры. Я пытаюсь выполнить рабочую проверку числа в моем полном html-коде. Кстати, это образец моей формы:

<form action = "test.php" method = "post" onsubmit = "return validateForm()" name ="form_name">
<input type = "number" min = "0" placeholder = "0" name = "number_name" size = "2"/>

Мне интересно, можно ли использовать значение javascript выше для проверки формы числа или есть более простой способ сделать это.

* In-Depth * Я сделал быстрый html-код для моего первого вопроса и сделал несколько форм "числа". Это неполное... Я решил протестировать один номер, прежде чем внедрять код для всей формы. Это мой код:

<html>
    <head>
    <script language="javascript">
    function validateForm()
    {
    var x=document.forms["order"]["cappuccino_qty"].value;
    if (x >= 0 || x < 0);
    {
    alert("The following must be filled out");
    return false;
    }
    }
    </script>   
    <body>              
    <form action = "test.php" method = "post" onsubmit = "return validateForm()" name ="order">
                <label class = "field" for = "Cappucino">Cappuccino
                <input type = "number" min = "0" placeholder = "$3.75" name = "cappuccino_qty" size = "2"/><br>
                <label class = "field" for = "Espresso">Espresso
                <input type = "number" min = "0" placeholder = "$3.00" name = "espresso_qty" size = "2"/><br>
                <label class = "field" for = "Double Espresso">Double Espresso
                <input type = "number" min = "0" placeholder = "$4.25" name = "double_espresso_qty" size = "2"/><br>
                <label class = "field" for = "Flat White">Flat White
                <input type = "number" min = "0" placeholder = "$3.75" name = "flat_white_qty" size = "2"/><br>
                <label class = "field" for = "Latte">Latte  
                <input type = "number" min = "0" placeholder = "$3.50" name = "latte_qty" size = "2"/><br>
                <label class = "field" for = "Ice Coffee">Ice Coffee
                <input type = "number" min = "0" placeholder = "$2.50" name = "ice_qty" size = "2"/><br>
                <input type = "submit" value = "submit" name = "submit"/>
                <p>
       </form>
       </body>  
       </head>
       </Html>
Теги:
validation

3 ответа

1
Лучший ответ

+ Изменить

if (x==null || x=="")

в

if (/[^\d\.]/.test(x))

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

[Редактировать]

См. Обновленный Fiddle: http://jsfiddle.net/5UxGp/1/

  • 0
    Не работает Нет оповещений.
  • 0
    Это работает - попробуйте в консоли: if (/[^\d\.]/.test("asd")) alert('not num');
Показать ещё 6 комментариев
1

Простой способ

function validateForm()
{
var x=document.forms["form_name"]["number_name"].value;
if (!(x >= 0) || !(x < 0))
  {
  alert("The following must be filled out");
  return false;
  }
}

Кстати, если 0 минимально в вашей форме

 function validateForm()
    {
    var x=document.forms["form_name"]["number_name"].value;
    if (!(x >= 0))
      {
      alert("The following must be filled out");
      return false;
      }
    }
  • 0
    Пожалуйста, верните true, если все в порядке
0

Вы проверяете только переменную, если она является пустой или пустой, но когда вы вводите символы на ней, она выпрыгивает из вашего оператора if. Попробуйте использовать эту функцию. См. Ссылку здесь, если необходимо: проверьте десятичные числа в JavaScript - IsNumeric(). Надеюсь, это поможет.

function isNumber(x) {
    return !isNaN(parseFloat(x)) && isFinite(x);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню