繁体   English   中英

jQuery 确认对输入文本的效果

[英]jQuery confirm like effect on input text

好吧,这就是我想做的:我有一个文本字段和一个文本区域,它们都充当控制台 window。我正在开发一个非常基本的解释器模拟,它有自己的编程语言 javascript (jQuery),所以当我开始执行用户之前输入的程序,我 go 通过所有指令,当到达特殊指令(“leer”)时,用户必须在此控制台中输入一些内容并暂停程序的执行,我知道用户按下“返回”键时完成输入。 当发生这种情况时,程序将继续其正常的执行流程。

现在,此行为与确认框非常相似,因为它等待输入,当用户按下任何按钮(是/否)时,执行将继续。

我希望我已经解释得足够清楚,以便你们所有人都知道我的问题是什么。 我知道在这里放置一些代码会很棒,但我真的不知道它的哪一部分会有帮助,所以如果您需要一些代码块,请告诉我。

这是页面的样子。chmaquina 执行

这是用于执行每个程序的代码:

this.ejecutarPrograma = function(pidprograma) {
    var programa = this.listaProgramas[pidprograma];
    if(programa == undefined) throw "ERROR!, PID no encontrado"
    var posIni, posEnd;
    posIni = programa.obtenerRbp();
    posEnd = programa.obtenerRlc();
    this.cp = posIni;
    var temp = this.memoria[this.cp].split(/\s+/);
    while (this.cp < posEnd || temp[0] != "retorne") {
        try {
            if (temp[0] == "vaya") {
                this.cp = ACCIONES[temp[0]](this.cp, temp[1], programa);
            }
            else if (temp[0] == "vayasi") {
                this.cp = ACCIONES[temp[0]](this.memoria[0], this.cp, temp[1], temp[2], programa);
            }
            else if (temp[0] == "nueva" || temp[0] == "etiqueta" || temp[0] == "retorne") {
                // nada de nada por aca porque estos ya estan implementados
                this.cp++;
            }
            else {
                this.memoria[0] = ACCIONES[temp[0]](this.memoria[0], temp[1], programa);
                this.cp++;
            }
            var temp = this.memoria[this.cp].split(/\s+/);
        }
        catch (e) {
            throw "Linea " + (this.cp).toString() + ": " + e;
        }
    }
};

ACCIONES 是一个关联数组,它保留指令的名称并且作为一个值具有 function,指令“leer”为空它只是从输入中获取一个值并将该值复制到程序的一个变量中

感谢大家的帮助。

我不确定我是否完全理解这个问题,但听起来您正在寻找prompt function。

例如:

prompt('Please enter your input.');

用户单击“确定”后,输入将作为字符串返回。 如果他们单击取消,则返回 null。

编辑:

看到你对 imsky 的回答的评论后,我想我对你想做什么有了更好的理解。 如果我错了纠正我。

你有一个循环,你想连续运行直到用户做某事,此时你希望你的循环等待用户完成,然后继续执行循环?

如果是这种情况,请尝试将循环放入 function 并使用setTimeout(yourfunction,0) function 的每次迭代,检查用户是否做了某事(这意味着当用户做某事时设置一个变量并从yourfunction()中检查它。如果用户没有做某事,继续循环(通过使用 setTimeout 技巧),否则做任何你需要做的事,之后你可以再次调用你的yourfuntion() 。这里唯一的问题是你不能在执行过程中中断你的yourfunction ,就在每个“循环”之间。

这是一个例子: http://jsfiddle.net/PYabX/

这有意义吗,还是我完全离开了?

听起来您想在控制台输入字段上使用keyup处理程序。 检查事件的键码,如果是回车键,则继续处理程序。

编辑:好的,我看到你的代码中有一个 while 循环。 当您按下输入指令时尝试引入另一个 while 循环,并在按下 Enter 后满足它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM