javascript - 如何根据页面其他地方的文本停止某些输入值?

标签 javascript greasemonkey firefox2

我有一个完美运行的现有脚本! 它是为 Firefox 2.xGreasemonkey 0.8.x 编码的,我不能使用 jQuery!

旧的工作脚本:

//--- Make sure this list of names is all uppercase.
var usersWhoCanSetPriority = ['JOHN', 'LUKE', 'JEFF', 'MAX', 'ANDY'];

var bDisablePrio    = true;
var tdNodes         = document.getElementsByTagName ("TD");
for (var J = tdNodes.length - 1;  J >= 0;  --J) {
    var tdNode      = tdNodes[J];
    if (tdNode.className == "user") {
        var userName        = tdNode.textContent.replace (
            /^(?:.|\n|\r)+\(User:\s+([^)]+)\)(?:.|\n|\r)+$/i, "$1"
        ).toUpperCase ();

        if (usersWhoCanSetPriority.indexOf (userName) > -1) {
            bDisablePrio    = false;
        }
    }
}

if (bDisablePrio) {
    var oldInput = document.getElementsByName ("prio");
    oldInput[0].setAttribute ("disabled", "disabled");
}


  1. Here's a fiddle of how it looks/acts when the user is not in usersWhoCanSetPriority .

  2. Here's a fiddle of how it looks/acts when the user has full access .


新脚本示例:

现在,如果存在destination 输入,特权用户应该能够设置任何值。
但是应该阻止非特权用户设置 1222

  1. Privileged user, with Destination field .

  2. Restricted user, with Destination field .

也就是说,如果用户是NOT -> 'JOHN'、'LUKE'、'JEFF'、'MAX'、'ANDY'(来自页脚)然后禁用 prio 输入,并且当用户输入“12”或“22”时停止输入,并写一条错误消息。

你必须知道史蒂夫(“不允许的用户”)被允许输入例如 120、121、220、222 和所有其他数字,但不是1222!不知道是不是问题,因为12也在120里面! 'JOHN'、'LUKE'、'JEFF'、'MAX'、'ANDY' 被允许将所有数字输入到输入中。

旧脚本在不同的页面上运行,例如 site-one.html 和 site-two.html 然而,目标输入位于 site-one.html 和 site-three.html - 这意味着有时我只有优先输入,有时我同时拥有优先输入和目标输入。

我该怎么做?

问候,伯恩特

最佳答案

参见 http://jsfiddle.net/WT9yZ/4/

可以添加

if(bDisablePrio){
    var destExcluded=['12','22'];
    document.getElementById('dest').onchange=function(){
        if(destExcluded.indexOf(this.value)>-1){
            this.value='';
        }
    }
}

问题是,如果 "122" 被允许但 "12" 不允许,您不能在中使用 onkeypress 事件为了防止用户这样写,因为如果用户不能写 "12",他也不能写 "122"

然后,解决方案是 onchange 事件,该事件在文本字段失去焦点时触发(如果它已被修改)。然后,如果用户只写了 "12""22",您可以清除文本字段。

关于javascript - 如何根据页面其他地方的文本停止某些输入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12307046/

相关文章:

javascript - 直接链接到具有多个模态的开放模态

javascript - ng 内重复指令

javascript - 如何使用 Regex 按文件格式取消选中所有文件

javascript - 我如何检测用户何时离开我的站点,而不仅仅是转到其他页面?

javascript - Jquery 显示/隐藏为什么它不起作用?

javascript - GreaseMonkey 脚本,不解析添加到 DOM 的链接

javascript - 转换 JavaScript 书签以便与 Greasemonkey 一起使用?

css - Firefox 1.5 和 2 css 绝对位置错误

css - 用 css 包装文本