gpt4 book ai didi

javascript - 使用 dojo 按键事件时无法避免最后一个字符输入

转载 作者:行者123 更新时间:2023-12-02 16:29:33 24 4
gpt4 key购买 nike

我正在尝试在按键事件上调用道场。我想要实现的是,一旦遇到“%”,我想开始读取后续字符,一旦遇到“?”,我想对文本进行子串并替换整个文本带有子字符串文本的框。

虽然我能够对文本和所有内容进行子串,但我面临的问题是“?”它出现在子字符串文本之后。

即当'?'按下后,字符串将被子字符串化,并且所需的文本将被替换到框中。但是,文本带有“?”,这是我不想要的。

例如我输入 11111%B3333555533335555?,所以我希望将整个文本替换为 3333555533335555,但是,在我的情况下,它以 3333555533335555? 结尾>我使用以下代码来调用该事件:

require(["dojo/keys", "dojo/dom", "dojo/on", "dojo/domReady!"],
function(keys, dom, on){
on(dom.byId(abc), "keypress", function(evt){
//substring the code here and set the value back
});
});

此外,keyup 事件对我不起作用。不知道这是否能解决问题,但它不起作用。在 Firefox 和 IE 中尝试过。

最佳答案

虽然您尝试了“keyup”事件并且它“不起作用”,但我建议您查看此事件。 keyup event当按键已经释放时抛出,这是用修改后的值替换输入(input.set(“value”,value)的最佳时机。

请解释一下使用 keyup 时出了什么问题。我创建了一个JSfiddle它利用了 keyup 事件。

require(["dojo/keys", "dojo/dom", "dojo/on", "dojo/domReady!", "dijit/form/TextBox"],
function(keys, dom, on, domready, tb){
var textbox = dom.byId("abc");
on(textbox, "keyup", function(evt){
//substring the code here and set the value back
console.log(evt.target.value);
if (evt.target.value.indexOf("?") > -1){
evt.target.value = evt.target.value.substring(0, evt.target.value.indexOf("?"));
}
});
});

关于javascript - 使用 dojo 按键事件时无法避免最后一个字符输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28431207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com