我在视图模型上有一个属性是数字类型;
[Display(Name="Year Began")]
public short? YearBegan { get; set; }
然而,使用此功能,用户仍然可以输入非数字值(即“asdf”)。这确实进行了验证并告诉用户模糊输入的值必须是数字 - 但我想阻止用户首先输入无效值(类似于输入掩码)。
有没有办法限制输入以防止用户仅使用DataAnnotations属性输入无效(在这种情况下,任何不是数字)?
答案 0 :(得分:0)
但我想阻止用户输入无效值 第一名(像输入掩码)。
仅在服务器上无法实现。你将不得不求助于javascript。
所以你可以使用几个插件。例如jQuery numeric plugin
。如果你不想依赖外部插件,你可以随时推出自己的实现,如this article
所示:
$(document).ready(function() {
$("#txtboxToFilter").keydown(function(event) {
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
} else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
}
});
});
您当然可以使其更通用,并将class="numeric"
应用于仅允许整数的所有输入字段,然后调整您的选择器:$(".numeric").keydown(function(event) { ... });