2017-09-04 19 views
1

私はテキストエリアがある2以外のすべてのページでスペースボタンが押されないようにしようとしています。ユーザーがサポートチケットのメッセージを入力できるように、これらのテキストエリアページにスペースが必要です。私はこれを行うためのさまざまな方法を試してきましたが、実際の方法を見つけることはできません。この小さなエラーを試してみると、一週間ほど過ごしました。何か助けを得る時期だと思った。Javascript - 2以外のすべてのページのスペースを無効にする

エラーが発生するのは、以下のコードを使用すると、スクリプトを実行しないと言ったページの1つに、空白を使用できないことがわかります。

私の現在のコードは次のとおりです。

$(document).keydown(function(event) { 

var myUrl_one = '/panel/staff?page=tickets'; 
var myUrl_two = '/panel/support'; 

var currentUrl = window.location.pathname; 

if(currentUrl != myUrl_one || currentUrl != myUrl_two) { 
     if (event.which == 32) { 
      event.preventDefault(); 
      $.Notification.autoHideNotify('error', 'top right', 'Keyboard Error!', 'No spaces are allowed here!'); 
     } 
} 

}); 
+0

私はあなたがあなたの 'if'状態に' '&&'と '||を交換する必要があると思います。 – Airwavezx

+0

@Airwavezxさて、私は今、myUrl_oneではなく、myUrl_twoのURLで作業しています。 – Benza

+0

デバッグを試してください。 'console.log(currentUrl、myUrl_one)'を使って、それらが実際に等しいかどうかを確認してください。私の最高の推測は、彼らはあなたではなく、あなたのコードに軽微な誤りがあるということです。 – Airwavezx

答えて

0

あなたの最初の問題は、あなたの内に存在する場合、条件:(= myUrl_twoがCURRENTURL = myUrl_one || CURRENTURL!)常にtrueになります。

if(currentUrl != myUrl_one && currentUrl != myUrl_two) { 
} 

さらに読書:あなたが代わりに& &演算子を使用する必要があり

@RogerCageotと@AirwavezxへLogical Operators

+0

私はそれが両方のページでうまくいくと思ったが、私がmyUrl_oneページでそれを試してみると、それは私にスペースエラーを与えている。 – Benza

+0

あなたのパスは正しいですか?コンソールを使用してwindow.location.pathnameをデバッグし、myUrl_oneおよびmyUrl_twoの値と比較します。 – RogerC

1

おかげで、私は問題を発見しました。

まず、私は自分の||そのような私のif文でオペレータに& &:

if(currentUrl != myUrl_one && currentUrl != myUrl_two) { 

第二に、JavaScript関数のwindow.location.pathnameは、生のパスの場所ではなく、GETパラメータを取得します。 /panel/staff?page=ticketsを取得しようとしていたので、それは?page=ticketsではありませんでした。 /panel/staffだけを読んでいました。

マイ完全に動作するコードは以下の通りです:

$(document).keydown(function(event) { 

var myUrl_one = '/panel/staff'; 
var myUrl_two = '/panel/support'; 

var currentUrl = window.location.pathname; 

if(currentUrl != myUrl_one && currentUrl != myUrl_two) { 
    if (event.which == 32) { 
     event.preventDefault(); 
     $.Notification.autoHideNotify('error', 'top right', 'Keyboard Error!', 'No spaces are allowed here!'); 
     console.log(currentUrl, myUrl_one); 
    } 
} 

}); 
関連する問題