我试图阻止在我的所有页面上按空格按钮,除了我有textareas的地方。我需要这些textarea页面上的空格,以便用户可以输入他们的支持票据消息。我已经尝试了很多不同的方法来做到这一点,但找不到工作方式。我花了大约一整个星期才尝试这个小错误。我认为是时候寻求帮助了。
错误是,当我使用下面的代码时,它告诉我,我不能使用空格(并阻止空格),尽管我在其中一个页面上,我说不要运行脚本。
我目前的代码是:
$(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 :(得分:1)
感谢@RogerCageot和@Airwavezx,我发现了这个问题。
首先,我需要改变我的||运营商与&&在我的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);
}
}
});