gpt4 book ai didi

javascript - element2.focus() 在 element1.onblur() 无法在 Fx/Chrome/Safari 中工作后触发 - Salesforce

转载 作者:行者123 更新时间:2023-11-29 15:50:36 25 4
gpt4 key购买 nike

我在 Salesforce (visualforce) 上使用自定义自动完成 Javascript。我的要求是,一旦从另一个文本字段 element1 的建议中做出选择,就触发对文本字段 element2 的自动完成搜索。

因为我需要能够使用键盘滚动浏览自动建议列表,所以我需要专注于特定领域。在 element1 上进行选择并触发 element2 上的自动建议搜索后,我目前正在执行 element2.focus()

此外,在这些字段上,当搜索正在运行并且用户手动关注该字段时,自动建议会折叠 - 这是取消搜索的指示。因此,我无法触发搜索并然后调用element2.focus()

以下是在不同浏览器中的体验:

Chrome/Firefox 3.5、4/Safari 5.0.3:

  1. element1 下的建议中选择一个选项
  2. 字段值变化
  3. 建议折叠
  4. 视野模糊,但不确定焦点在何处。可能是 window

IE 8:

  1. element1 下的建议中选择一个选项
  2. 字段值变化
  3. 建议折叠
  4. 场模糊,element2 获得焦点
  5. 该字段的搜索结果

此外,上述行为差异仅在使用鼠标单击进行选择时出现。当使用击键(向上/向下然后输入)时,这在所有浏览器中都按预期工作。在鼠标和键盘选择上执行同一组 javascript 方法。

我发现的一个有趣的“修复”是在使用 setTimeout() 调用 element2.focus() 之后,比方说,100 毫秒。我猜这是因为 element1 的 onblur 干扰了 element2.focus() 但我不太喜欢使用它。

嗯,有什么想法吗?

代码示例:

//mouseclick handler

function handleMouseClick(event){

element1.value = (event.target)?event.target.textContent:event.srcElement.innerText;
callback();

// kills the children and hides the div containing the suggestions
hideAutoComplete();
}


function callback() {
element2.value = '';
element2.focus();
}

最佳答案

可以使用框架吗?他们真的消除了事件的跨浏览器兼容性的痛苦。这是一个使用 jQuery 的简短示例,它似乎可以执行您想要的操作。任何主要框架都可能适用于此。

<html>
<head>
<title>Testing some JS behavior</title>
</head>
<body>
<form id="fooForm">
<label for="a">A: </label><input id="a"/><br />
<label for="b">B: </label><input id="b"/><br />
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>
$('#b').focus(function(e) {
alert("Focusing on b now.");
});

$('#a').blur(function(e) {
alert("Doing my business on element A.");
$('#b').focus();
// Stop bubbling, just in case this got triggered by them clicking into B
return false;
});
</script>
</body>
</html>

关于javascript - element2.focus() 在 element1.onblur() 无法在 Fx/Chrome/Safari 中工作后触发 - Salesforce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031079/

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