我在视图模型上有一个属性,它是一个数字类型;
[Display(Name="Year Began")]
public short? YearBegan { get; set; }
但是,这样用户仍然可以输入非数字值(即"asdf")。这确实进行了验证,并告诉模糊用户输入的值必须是数字的-但我想防止用户首先输入无效的值(类似于输入掩码)。
是否有一种方法可以限制输入,以防止用户只使用DataAnnotations属性输入非有效(在本例中为任何非数字)?
发布于 2013-12-28 09:18:31
但我希望防止用户首先输入无效的值(类似于输入掩码)。
这不可能仅在服务器上实现。您将不得不求助于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) { ... });
。
https://stackoverflow.com/questions/20817206
复制