1

このスクリプトを使用して、ユーザーが| < > / \ : * ? \ " ^aspx c# Web サイトのフォームの入力ボックスに挿入できないようにしています。ただし、これは IE または Chrome でのみ機能します。なぜFirefoxで機能しないのかについて誰かが洞察を提供できるかどうか疑問に思っていましたか?

<script type="text/jscript">

    $('input').bind('keypress', function(event) {
        var regex = new RegExp("[|<>/\\\\:*?\"^]");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key) == false) {
            event.preventDefault();
            alert("Seach cannot contain the following characters: \n \\ / : * ? \" < > |");
            return false;
        }
    });
</script>
4

2 に答える 2

2

間違って宣言したため、機能しません。

これを変える

<script type="text/jscript">

正しい:

<script type="text/javascript">

または、JavaScript がデフォルトであるため、タイプを完全に省略できます。

<script>
于 2012-10-15T12:23:49.773 に答える
1

scunliffeが投稿したものは別として、これはおそらくあなたが望むものではありません。

if (!regex.test(key) == false)
  --^--                 --^--

あなたは二度否定しています。多分あなたはこれが欲しい:

if (!regex.test(key))

それはより理にかなっています。testは偽なので、bool と比較する必要はありません。

于 2012-10-15T12:25:37.177 に答える