7

Web サイト (MVC3、C#) とバーコード リーダーでこの問題が発生しました。私のフォームでは、次のようなものがあります。

<ajax form....>

<input type=text />

<div id=list>
</div>

</form>

そして、入力はバーコードリーダーで埋められ、ajax で id = list で div を埋めるフォームを自動的に送信します。私の問題は、クロムの場合、つまり、テキストが送信された後、ダウンロードウィンドウがクロムに​​表示され、お気に入りウィンドウが ie に表示されることです。これは、バーコード リーダーがテキストに [CR][LF] を挿入し、それらのウィンドウを開くためだと思います。バーコードリーダーがctrl-jを挿入していると思ったのは、その組み合わせがchromeのダウンロードウィンドウとieのお気に入りを開くためですが、Firefoxではダウンロードウィンドウが開きません(またctrl-jでもあります)。

私のページが機能するようにクライアントにバーコードリーダーを構成するように伝えたくないので、おそらくその問題を解決するJavaScriptのソリューションが必要です。

ありがとう!!!

4

6 に答える 6

5

私はこのリンクを見つけましたが、唯一の解決策はスキャナーのデフォルト文字を変更することでした...私のものを変更できるかどうかはわかりませんが、あなたと同じように、ブラウザ関連の修正も探しています.. それが起こらないように、JavaScriptで文字を処理してみます...何か成功したら、忘れずにここに戻ってきて、へへへへへ

これで問題は解決すると思います....

$(document).ready(function(){
    $("#input").keydown(function(e){
        if(e.which==17 || e.which==74){
            e.preventDefault();
        }else{
            console.log(e.which);
        }
    })
});

彼もあなたのために働くかどうかを知っておいてください..キャッシュも空にしてください...

于 2012-07-07T21:43:26.243 に答える
1

このコードは私のために働く

$(document).ready(function(){
    $("#input").keydown(function(e){
        if(e.which==17 || e.which==74 || e.keyCode == 13){
            e.preventDefault();
        }
    })
});
于 2015-05-07T20:46:48.983 に答える
0

私のスキャナー (Intermec SR30) は、バーコードの後に​​ 3 つの改行文字を適用するように設定されています。Vimを開いて挿入し、バーコードをスキャンしてこれを見つけました。次に、ファイルを od -ax に分類しました。

0000000   3   1   2   2   1   0   9   9   9   4   8   5   2   8  nl  nl
       3133    3232    3031    3939    3439    3538    3832    0a0a
0000020  nl
           000a
0000021

「nl」を次のようにトラップできます。

$(document).ready(function(){
    $("#barcode").keypress(function(e){
        console.log('"' + e.keyCode + '"\n');
        if(e.keyCode == 13){
            e.preventDefault();
        }
    })
});

しかし、download-window-open イベント (キーボードからの Ctrl+j) は、開いているページに到達する前にブラウザーによって丸呑みされます。この問題は、Firefox 30.0 も悩まされています。

于 2015-03-11T18:33:13.177 に答える