所以我有这个:
<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">