ñÑ 字符的 Javascript 验证适用于 Chrome,但不适用于 Firefox

标签 javascript asp.net validation google-chrome firefox

我正在开发 ASP.Net,我有一个 WebForm,其中包含指向 javascript 文件的链接,该文件包含以下函数:

    $(".string").keydown(function (e) {
    var x = (e.charCode) ? e.charCode : ((e.which) ? e.which : e.keyCode);
    if ($.inArray(e.keyCode, [46, 8, 27, 16, 13, 32, 192, 9, 209, 241]) !== -1 ||
        (e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) ||
        (e.keyCode == 67 && (e.ctrlKey === true || e.metaKey === true)) ||
        (e.keyCode == 88 && (e.ctrlKey === true || e.metaKey === true)) ||
        (e.keyCode >= 35 && e.keyCode <= 39)) {
        return;
    }
    if (e.keyCode < 65 || e.keyCode > 90) {
        e.preventDefault();
    }
});

这成功地允许我在 Chrome 上输入 ñÑ (209, 241) 字符,但在 Firefox 上失败,我看到在处理 Firefox 时应该使用 e.which 但它没有不工作。我不太擅长 JavaScript,所以我在这里不明白什么?

最佳答案

在 Lee Jenkins 先生的帮助下,我意识到像这样修复我的代码就足以解决问题,非常感谢!只需添加 (e.key == "ñ"|| e.key == "Ñ") ||

$(".string").keydown(function (e) {
    var x = (e.charCode) ? e.charCode : ((e.which) ? e.which : e.keyCode);
    if ($.inArray(x, [46, 8, 27, 16, 13, 32, 192, 9, 209, 241]) !== -1 ||
        (e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) ||
        (e.keyCode == 67 && (e.ctrlKey === true || e.metaKey === true)) ||
        (e.keyCode == 88 && (e.ctrlKey === true || e.metaKey === true)) ||
        (e.keyCode == 88 && (e.ctrlKey === true || e.metaKey === true)) ||
        (e.key == "ñ" || e.key == "Ñ") ||
        (e.keyCode >= 35 && e.keyCode <= 39)) {
        return;
    }
    if (e.keyCode < 65 || e.keyCode > 90) {
        e.preventDefault();
    }
});

关于ñÑ 字符的 Javascript 验证适用于 Chrome,但不适用于 Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43749025/

相关文章:

javascript验证

javascript - 测试 Vue 增强输入的值没有按预期工作

javascript - jquery mobile 将我的屏幕大小设置为 100%

asp.net - MVC 4 PartialViewResult 缓存 jQuery $.post

asp.net - 可能的 SOAP 版本不匹配

javascript - 使用 AJAX 进行表单验证

regex - 如何验证 hh :mma time format in Go?

Javascript 键码在 firefox 中不起作用,但在 chrome 中运行良好

javascript - Vuetify组合框多次添加选项?

ASP.NET MVC 模型绑定(bind)和验证问题