强制限制数字输入。

时间:2013-02-08 07:24:42

标签: php html css

所以我有这个:

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

我的问题是如何确保没有负数放入此字段?如果可能的话,我想在后端和前端固定它。

感谢。

4 个答案:

答案 0 :(得分:1)

在客户端,您可以使用JavaScript进行测试,如

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

在服务器端,您可以查看

$num = "100";
if ( (int)$num == $num && (int)$num > 0 )

答案 1 :(得分:1)

您可以使用min和max属性!

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

允许用户选择0到10之间的数字!

如果你的后端是用PHP构建的,你可以这样查看:

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

答案 2 :(得分: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";
    }
?>

答案 3 :(得分:0)

客户端:

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

这将确保&#39; - &#39;签名无法进入文本字段

服务器端:

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