0

こんにちは、私はこの問題を抱えています。私のhtmlコードでは、入力タイプ「数字」を検証できないようです。このコードを使用して検証を試みましたが、機能しません

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

このコードは、数値ではなく「テキスト」の入力タイプを検証する Web サイトから取得しました。完全な 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検証を使用して数値形式を検証できるかどうか、またはそれを行う簡単な方法があるかどうか疑問に思っています。

*詳細 * 最初の質問のために簡単な html コードを作成し、「数値」の複数形を作成しました。不完全です... フォーム全体のコードを実装する前に、1 つの「数字」をテストすることにしました これまでのコードは次のとおりです。

<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>
4

3 に答える 3

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;
      }
    }
于 2013-09-19T09:36:30.517 に答える
1

変化する

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

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

これにより、数値以外の文字またはピリオド文字がチェックされます (小数点を許可する場合)。

[編集]

更新された Fiddle を参照してください: http://jsfiddle.net/5UxGp/1/

于 2013-09-19T09:32:08.873 に答える
0

変数がnullまたは空の場合にのみ変数をテストしていますが、変数に文字を入力すると、ifステートメントで飛び出します。この機能を使ってみてください。必要に応じて、こちらのリファレンスを参照してください: JavaScript で 10 進数を検証する - IsNumeric()。それが役立つことを願っています。

function isNumber(x) {
    return !isNaN(parseFloat(x)) && isFinite(x);
}
于 2013-09-19T09:54:31.917 に答える