だから私はこれを持っています:
<input name="data[Donation][amount]" value="0.00" step="any" maxlength="12" type="number" id="DonationAmount">
私の質問は、このフィールドに負の数が入力されないようにする方法です。できれば後ろと前の両方に固定したいです。
ありがとう。
クライアント側では、次のような JavaScript でテストできます
var num=123.45;
$("#DonationAmount").val().match(/^[0-9.]+$/)
サーバー側では、次のように確認できます
$num = "100";
if ( (int)$num == $num && (int)$num > 0 )
そのために min および max 属性を使用できます。
<input type="number" min="0" max="10" />
ユーザーは 0 から 10 までの数字を選択できます。
また、バックエンドが PHP で構築されている場合は、次のようにチェックアウトできます。
if($_POST["data"]["Donation"]["amount"] < 0) {
return false;
}
フロント エンドでは、これを行うには 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";
}
?>
クライアント側:
$("#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">