这适用于所有其他浏览器的最新版本,但在Firefox上失败。使用Firefox时,文本框将不接受键盘输入。
@Html.EditorFor(m => m.Extension, new { htmlAttributes = new { @class = Model.DigitsOnlyClassName, @placeholder = Resources.PhoneExtension } })
<input class="phoneDigitsOnly text-box single-line" data-val="true" data-val-maxlength="The field Ext must be a string or array type with a maximum length of '10'." data-val-maxlength-max="10" id="Phone_Extension" name="Phone.Extension" placeholder="Ext" value="" type="text">
当您删除data-val-maxlength-max属性或占位符时,文本框将接受键盘输入。
我已经搜索过但无法找到有关这是Firefox错误的任何具体信息。是吗?
更新:从课程中删除phoneDigitsOnly也允许控件工作。该类有一个只允许数字的事件。
很奇怪,删除3中的1个允许输入。
答案 0 :(得分:0)
解决! 想知道为什么我遇到的错误仅在Firefox中以这种方式表现出来的解释。
我替换了......
$('.phoneDigitsOnly').keypress(function (e) {
if (String.fromCharCode(e.keyCode).match(/[^0-9]/g)) return false;
});
与
$('.phoneDigitsOnly').keypress(function (e) {
var code = e.keyCode || e.which;
// Don't validate the input if below arrow, delete and backspace keys were pressed
if (code == 37 || code == 38 || code == 39 || code == 40 || code == 8 || code == 46) { // Left / Up / Right / Down Arrow, Backspace, Delete keys
return;
}
if (String.fromCharCode(code).match(/[^0-9]/g)) return false;
});
请注意需要额外的密钥代码处理。再次只需要Firefox,箭头,删除和退格所有在Chrome&amp; IE最新版本。