ユーザーが 0 から 5000 までの数値を入力できるフォームのフィールドがあります。
私は 3 つの異なるアプローチを試しましたが、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:
フォーム フィールドの数値範囲を制限する正しい方法は何ですか?