0

提出金額が次のようなフォームを作成しました

<label for="amt"<?php validateField( "amt", $Fieldsmissing ) ?>>Amt *</label> <input type="number" name="amt" id="amt" min="1" value="<?php setValue( "amt" ) ?>" />

フォームの上部の状態は次のようになります

function setValue( $fieldName ) { if ( isset( $_POST[$fieldName] ) && $_POST[$fieldName] > 0 ) { echo $_POST[$fieldName]; } }

送信後、0を入力するとエラーが表示されますが、00または0の代わりに'-'記号またはアルファベットを入力すると、検証されません。

数値タイプにはMozila、IEにバグがあることを知っていますが、Chromeは1未満の入力を受け入れないため、Chromeでは正常に機能します。私が探しているのは、0.1から最大の正の数の範囲の入力値を設定したいです。 (つまり99999)。それとは別に、他に何かを入力すると、エラーが表示されます。誰でも私のフォームに最適な条件を教えてください。ありがとう。

完全なソースコードはあなたの理解のためにここに与えられています、あなたがここを見ていただければ幸いです

4

1 に答える 1

0

これらの機能をチェックしてください:

  • intval:変換に指定された基数を使用して、var の整数値を返します (デフォルトは基数 10)。intval() をオブジェクトに使用しないでください。使用すると E_NOTICE レベルのエラーが発生し、1 が返されます。
  • filter_var:指定したフィルターで変数をフィルター処理します。(FILTER_VALIDATE_INTあなたの場合。
  • settype変数の型を設定します。(整数)

だから、これを試してください:

function setValue($fieldName)
{
   if (isset($_POST[$fieldName]))
   {
      $field = intval($_POST[$fieldname]);
   }

   // other magic
}
于 2013-03-17T20:59:18.310 に答える