gpt4 book ai didi

jQuery:文本字段失去对 unwrap() 的关注

转载 作者:行者123 更新时间:2023-12-01 00:20:39 26 4
gpt4 key购买 nike

当用户提交或聚焦无效输入时,我有一个包含在错误 div 中的文本字段。如果用户纠正了错误,我想删除包装器,但是,unwrap() 方法会导致字段失去焦点。

$(special_input).live('keyup', function() {
if (input_okay && input_had_errors) {
$(this).unwrap();
}
});

没什么大不了的,我可以重置焦点并且工作正常......

$(this).unwrap().focus();

...除了 IE 之外的任何地方!我尝试在上述函数中插入一个 setTimeOut() 函数来解决 IE 缺乏对 focus() 事件冒泡的支持,这很有效......有点。

唯一的问题是它将光标设置为正在键入的内容的开头而不是结尾。 (什么?!)

无论如何,重置焦点似乎有点难看。有什么方法可以阻止 unwrap() 首先取消设置吗?

谢谢。

有点解决方案:

由于 ender 和 elusive 指出的原因,我只是决定修复光标错位的问题,这可以通过在再次关注文本字段后重置文本字段的值来完成。代码现在看起来像这样。

$(this).unwrap();
setTimeout(function() { $(this).focus().val($(this).val()); }, 5);

最佳答案

我认为您不能在不失去焦点的情况下 .unwrap() ,因为它会从 DOM 中删除父节点,然后将子节点附加到父节点所在的位置。如果浏览器在分离输入字段时没有移除焦点,您可以在未附加的输入字段中输入内容。

关于jQuery:文本字段失去对 unwrap() 的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4350566/

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