我在表单上有一个字段,允许用户输入 0 到 5000 之间的数字
我尝试了 3 种不同的方法,但是对于所有这三种方法,当我输入大于 5000 的数字时,我的表单提交被接受,这是不应该发生的:
方法1:
<asp:CustomValidator ControlToValidate="price" runat="server" ID ="inrange"
ErrorMessage="Must not exceed 5k"
OnServerValidate="lessThan5k">
</asp:CustomValidator>
在代码隐藏中使用此代码
protected void lessThan5k(object sender, ServerValidateEventArgs e)
{
if (Convert.ToInt32(price.Value) < 5000)
{
e.IsValid = true;
}
else
{
e.IsValid = false;
}
}
方法2:
<script type="text/javascript">
var listen = document.getElementById("price");
listen.addEventListener("input", function () {
var value = new parseInt(price.Value);
if (value > 5000) {
price.setCustomValidity("must not exceed 5000");
} else {
price.setCustomValidity("");
}
});
</script>
最后但并非最不重要的方法3:
限制表单字段的数字范围的正确方法是什么?