他のすべての問題に加えて、奇妙な問題が発生します。ASP.NET MVC アプリケーションを作成しています。フレキシグリッドを使用しており、モーダル ダイアログを使用しようとしています。IE、Google Chrome、および Opera では、Client No コントロールでのみ数字を入力できますが、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">
私は独自のクラス numericOnly と型番号 (Google Chrome でスピナーとして表示されます) を使用しています。
この方法で numericOnly クラスを定義する CardNumbers.js ファイルがあります。
$(".numericOnly").keypress(function (e) {
if (String.fromCharCode(e.keyCode).match(/[^0-9]/g)) return false;
});
上記のコードは、StackOverflow の質問の 1 つで少し前に見つけたもので、他のブラウザーでも問題なく動作します。
では、ここで何が間違っているのか、なぜ FireFox でしか入力できないのか分かりますか?