Javascript 无法在FireFox中键入任何内容

Javascript 无法在FireFox中键入任何内容,javascript,css,asp.net-mvc,jquery-ui,cross-browser,Javascript,Css,Asp.net Mvc,Jquery Ui,Cross Browser,除了我所有的其他问题外,我还遇到了奇怪的问题。我正在创建ASP.NET MVC应用程序。我正在使用flexigrid并尝试使用模态对话框。在IE、Google Chrome和Opera中,我只能在没有控件的客户端中键入数字,但在FireFox中,我无法键入任何内容 这是控件呈现的方式: <div id="add-edit-dialog" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 0

除了我所有的其他问题外,我还遇到了奇怪的问题。我正在创建ASP.NET MVC应用程序。我正在使用flexigrid并尝试使用模态对话框。在IE、Google Chrome和Opera中,我只能在没有控件的客户端中键入数字,但在FireFox中,我无法键入任何内容

这是控件呈现的方式:

<div id="add-edit-dialog" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 0px; height: 622px;" scrolltop="0" scrollleft="0">
<form id="add-edit-form" novalidate="novalidate">
<fieldset>
<legend>Client Info</legend>
<input id="fntype" type="hidden" name="fntype" value="">
<input id="ClientId" type="hidden" value="" name="ClientId" data-val-number="The field ClientId must be a number." data-val="true">
<div class="editor-label" style="background-color: rgb(255, 255, 255);">
<div class="editor-field" style="background-color: rgb(255, 255, 255);">
<input id="ClientNumber" class="numericOnly input-validation-error" type="number" value="" name="ClientNumber" data-val-required="The Client No field is required." data-val-remote-url="/Client/doesClientNoExist" data-val-remote-type="POST" data-val-remote-additionalfields="*.ClientNumber,*.ClientId" data-val-remote="Client Number already exists. Please enter a different Client Number." data-val-number="The field Client No must be a number." data-val="true">
<span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="ClientNumber">
我前段时间在一个StackOverflow问题中找到了上面的代码,它在其他浏览器中运行正常


那么,你知道这里可能有什么问题吗?为什么我只能在FireFox中键入?

这听起来更像是一个浏览器问题。如果您的Firefox已过时,请尝试通过帮助>关于或更新。我刚刚把它带到FirefoxV18(最新发布频道)的HTML测试台上,它工作得很好。

试试这个解决方案。我希望这就是你要找的

换衣服

来自

if (String.fromCharCode(e.keyCode).match(/[^0-9]/g))

if(String.fromCharCode(e.which).match(/[^0-9]/g))
试试这个:

$(document).ready(function() {
        $(".numericOnly").keydown(function(event) {
            // Allow: backspace, delete, tab, escape, and enter
            if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
                 // Allow: Ctrl+A
                (event.keyCode == 65 && event.ctrlKey === true) || 
                 // Allow: home, end, left, right
                (event.keyCode >= 35 && event.keyCode <= 39)) {
                     // let it happen, don't do anything
                     return;
            }
            else {
                // Ensure that it is a number and stop the keypress
                if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                    event.preventDefault(); 
                }   
            }
        });
    });
$(文档).ready(函数(){
$(“.numericOnly”).keydown(函数(事件){
//允许:退格、删除、制表符、转义和回车
如果(event.keyCode==46 | | event.keyCode==8 | | event.keyCode==9 | | event.keyCode==27 | | event.keyCode==13 |
//允许:Ctrl+A
(event.keyCode==65&&event.ctrlKey==true)|
//允许:起始、结束、左、右

(event.keyCode>=35&&event.keyCode我在17.1版上,我认为这是最近的版本。无论如何,我现在正在下载更新,我会告诉你它是如何进行的。升级FireFox没有帮助,我仍然无法键入任何内容:(我只是注意到我在第一页(普通页)上也无法键入任何内容)在客户端无输入文本框中,但我只能在flexigrid中的pager控件中键入数字。我确实对flexigrid进行了一些更改,以使用number和numericOnly类,该类与该控件相同。以下是我在FireBug中发现的内容:客户端号:
客户端名称:为什么添加“valid”类?这就是它工作的地方好的:第页,共1页。哪个属性规范化了event.keyCode和event.charCode。请参阅谢谢。顺便说一句,此更改也没有帮助:(不知何故,FireFox在我的代码中嵌入了额外的类,我认为这是造成混乱的原因。在我的代码中,这是我的客户端号:
请查看我对user164的底部注释…以及它的呈现方式。它将novalidate标记添加到表单中,并将有效类添加到我的类中。这可能是一个问题吗?我将尝试您的代码,因为我注意到我的original代码与TAB键不兼容。我一直在一个小的test.html文件上测试,它在FireFox中似乎可以正常工作。在我完全破坏了我的网站的所有更改之后,我现在从appOk重新开始测试:(1.该控件现在允许键入任何内容(字母和数字),但Google Chrome或FireFox中没有显示网格
$(document).ready(function() {
        $(".numericOnly").keydown(function(event) {
            // Allow: backspace, delete, tab, escape, and enter
            if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
                 // Allow: Ctrl+A
                (event.keyCode == 65 && event.ctrlKey === true) || 
                 // Allow: home, end, left, right
                (event.keyCode >= 35 && event.keyCode <= 39)) {
                     // let it happen, don't do anything
                     return;
            }
            else {
                // Ensure that it is a number and stop the keypress
                if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                    event.preventDefault(); 
                }   
            }
        });
    });