-5

だから私はこれを持っています:

<input name="data[Donation][amount]" value="0.00" step="any" maxlength="12" type="number" id="DonationAmount">

私の質問は、このフィールドに負の数が入力されないようにする方法です。できれば後ろと前の両方に固定したいです。

ありがとう。

4

4 に答える 4

1

クライアント側では、次のような JavaScript でテストできます

var num=123.45;
$("#DonationAmount").val().match(/^[0-9.]+$/)

サーバー側では、次のように確認できます

$num = "100";
if ( (int)$num == $num && (int)$num > 0 )
于 2013-02-08T07:30:05.327 に答える
1

そのために min および max 属性を使用できます。

<input type="number" min="0" max="10" />

ユーザーは 0 から 10 までの数字を選択できます。

また、バックエンドが PHP で構築されている場合は、次のようにチェックアウトできます。

if($_POST["data"]["Donation"]["amount"] < 0) {
    return false;
}
于 2013-02-08T07:31:03.167 に答える
0

フロント エンドでは、これを行うには JavaScript を使用する必要があります。

<script type="text/javascript">
function checknumber(val)
{
    if(val < 0)
    {
         alert('invalid value');
    }
}
</script>

<input name="data[Donation][amount]" value="0.00" step="any" maxlength="12" type="number" id="DonationAmount" onblur="checknumber(this.value)">

サーバー側ではこれを行うことができます...

<?php
    $Amount = $_POST["data"]["Donation"]["amount"];

    if($Amount < 0 || !is_numeric($Amount))
    {
        echo "Invalid value";
    }
?>
于 2013-02-08T07:32:31.243 に答える
0

クライアント側:

$("#DonationAmount").keypress(function(event) {
  if ( event.which == 45 || event.which == 189 ) {
      event.preventDefault();
   }
});

これにより、「-」記号がテキストフィールドに入力できないことが確認されます

サーバ側 :

if($_POST["data"]["Donation"]["amount"] < 0) {
    return false;
}

HTML:

<input name="data[Donation][amount]" value="0.00" step="any" maxlength="12" min="0" type="number" id="DonationAmount">
于 2013-02-08T07:32:38.537 に答える