在Razor中,接受没有小数的整数

时间:2018-03-22 10:42:58

标签: javascript razor html-helper

我遇到一个问题,文本框只允许整个数值,而不是剃刀视图中的点/小数值。我环顾四周,但不幸的是我找不到答案。

使用点接受数值时存在JavaScript验证,但我想要没有点/小数。

CSHTML:

@Html.TextBoxFor(Employee => Employee.AlternateNumber, new { @id = "txtAlternateNumber", @class = "form-control", @type = "number" })

2 个答案:

答案 0 :(得分:1)

如果js验证没问题,你可以这样做:

$('form').on('keydown', '.digitfield', function (e) { -1 !== $.inArray(e.keyCode, [46, 8, 9, 27, 13]) || (/65|67|86|88/.test(e.keyCode) && (e.ctrlKey === true || e.metaKey === true)) && (!0 === e.ctrlKey || !0 === e.metaKey) || 35 <= e.keyCode && 40 >= e.keyCode || (e.shiftKey || 48 > e.keyCode || 57 < e.keyCode) && (96 > e.keyCode || 105 < e.keyCode) && e.preventDefault() });

然后将digitfield类添加到文本框

答案 1 :(得分:1)

这与razor无关,而是与html5无关,但添加stepmin可能有所帮助(取决于浏览器支持等):

@Html.TextBoxFor(Employee => Employee.AlternateNumber, new { @id = "txtAlternateNumber", @class = "form-control", @type = "number", @step="1", @min="0" })

一个可运行的例子:

&#13;
&#13;
<form>
<input type="number" step="1" min="0"> <input type="submit">
</form>
&#13;
&#13;
&#13;

对于&#34;实时&#34;检查,你必须使用javascript:

@Html.TextBoxFor(Employee => Employee.AlternateNumber, new { @id = "txtAlternateNumber", @class = "form-control", @type = "number", @step="1", @min="0", @onkeypress="return event.charCode >= 48 && event.charCode <= 57" })

一个可运行的例子:

&#13;
&#13;
<form>
<input type="number" step="1" min="0" onkeypress="return event.charCode >= 48 && event.charCode <= 57"> <input type="submit">
</form>
&#13;
&#13;
&#13;