Javascript 单击div后将焦点返回到输入字段
为了便于在输入字段中输入重音字符,我显示了一个弹出div,其中显示了字符,因此您可以选择并单击。我希望将焦点保持在输入字段上(或者在任何将其移除的操作之后返回)。单击输入重音后,焦点将不会在javascript控制下返回。我已经用MacSafari和Firefox进行了测试,但没有成功。最终,它将需要在所有平台上工作 非常感谢您的帮助 大卫Javascript 单击div后将焦点返回到输入字段,javascript,input,focus,field,diacritics,Javascript,Input,Focus,Field,Diacritics,为了便于在输入字段中输入重音字符,我显示了一个弹出div,其中显示了字符,因此您可以选择并单击。我希望将焦点保持在输入字段上(或者在任何将其移除的操作之后返回)。单击输入重音后,焦点将不会在javascript控制下返回。我已经用MacSafari和Firefox进行了测试,但没有成功。最终,它将需要在所有平台上工作 非常感谢您的帮助 大卫 无标题文件 var=0; 函数displayaccents(){ 如果(showaccentswindow==0){ document.getElemen
无标题文件
var=0;
函数displayaccents(){
如果(showaccentswindow==0){
document.getElementById('accentswindow').style.display='block';
showaccentswindow=1;
}
其他的
{
document.getElementById('accentswindow').style.display='none';
showaccentswindow=0;
}
document.getElementById('inputbox').focus();
}
函数insertchar(c){
/*用于插入重音字符*/
document.getElementById('inputbox')。value=document.getElementById('inputbox')。value+c;
document.getElementById('inputbox').focus();***/不起作用**
}
#埃森斯温多{
显示:无;
位置:绝对位置;
顶部:50px;
背景色:#FFF;
宽度:200px;
边框:2个实心#999;
z指数:100;
左:150px;
文本对齐:左对齐;
垫底:20px;
左侧填充:20px;
}
埃森林克先生{
背景色:#F3EED7;
文本对齐:居中;
显示:块;
浮动:左;
高度:22px;
宽度:17px;
边缘顶部:9px;
右边距:3倍;
字体系列:Verdana,日内瓦,无衬线;
字体大小:15px;
字体大小:粗体;
颜色:#666;
光标:指针;
}
À
Û
那么,您必须将焦点绑定到取消焦点(模糊)操作
如果使用jQuery,您可以执行以下操作:
inputbox.blur(function(){
inputbox.focus();
});
inputbox.onblur=function(){
inputbox.focus();
};
纯javascript类似于:
inputbox.blur(function(){
inputbox.focus();
});
inputbox.onblur=function(){
inputbox.focus();
};
由于鼠标再次“静止”焦点,您应该添加一个侦听器来设置焦点
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript" charset="utf-8">
var showaccentswindow = 0;
function displayaccents() {
if (showaccentswindow==0) {
document.getElementById('accentswindow').style.display='block';
showaccentswindow=1;
}
else
{
document.getElementById('accentswindow').style.display='none';
showaccentswindow=0;
}
document.getElementById('inputbox').focus();
}
function insertchar(c) {
/*for inserting accented chars*/
document.getElementById('inputbox').value=document.getElementById('inputbox').value + c;
// DOESN'T WORK!!!**
}
function addListeners(){
document.getElementById('accentswindow').addEventListener("mouseup",function(){
document.getElementById('inputbox').focus();
})
}
</script>
<style type="text/css">
#accentswindow {
display:none;
position:absolute;
top: 50px;
background-color: #FFF;
width: 200px;
border: 2px solid #999;
z-index: 100;
left: 150px;
text-align: left;
padding-bottom: 20px;
padding-left: 20px;
}
.accentlink {
background-color: #F3EED7;
text-align: center;
display: block;
float: left;
height: 22px;
width: 17px;
margin-top: 9px;
margin-right: 3px;
font-family: Verdana, Geneva, sans-serif;
font-size: 15px;
font-weight: bold;
color: #666;
cursor: pointer;
}
</style>
</head>
<body onload="addListeners();document.getElementById('inputbox').focus();">
<div id="accentswindow" >
<div class="accentlink" onmousedown="insertchar('À')">À</div>
<div class="accentlink" onmousedown="insertchar('Û')">Û</div>
<img src="http://www.revilolang.com/images/closebox.png" width="28" height="26" style="float:right;" onmouseup="displayaccents()"/> </div>
<input name="" id="inputbox" type="text" />
<input name="accents" type="button" value="accents"onclick="displayaccents()" />
</body>
</html>
无标题文件
var=0;
函数displayaccents(){
如果(showaccentswindow==0){
document.getElementById('accentswindow').style.display='block';
showaccentswindow=1;
}
其他的
{
document.getElementById('accentswindow').style.display='none';
showaccentswindow=0;
}
document.getElementById('inputbox').focus();
}
函数insertchar(c){
/*用于插入重音字符*/
document.getElementById('inputbox')。value=document.getElementById('inputbox')。value+c;
//没用**
}
函数addListeners(){
document.getElementById('accentswindow')。addEventListener(“mouseup”,function()){
document.getElementById('inputbox').focus();
})
}
#埃森斯温多{
显示:无;
位置:绝对位置;
顶部:50px;
背景色:#FFF;
宽度:200px;
边框:2个实心#999;
z指数:100;
左:150px;
文本对齐:左对齐;
垫底:20px;
左侧填充:20px;
}
埃森林克先生{
背景色:#F3EED7;
文本对齐:居中;
显示:块;
浮动:左;
高度:22px;
宽度:17px;
边缘顶部:9px;
右边距:3倍;
字体系列:Verdana,日内瓦,无衬线;
字体大小:15px;
字体大小:粗体;
颜色:#666;
光标:指针;
}
À
Û
只需在每个accentlink
DIV上添加onclick=“document.getElementById('inputbox').focus();”
例如:
<div class="accentlink" onclick = "javascript:document.getElementById('inputbox').focus();" onmousedown="javascript:insertchar('À');">À</div>
À
谢谢,但我想我已经回答了我自己的问题-我需要在整个过程中使用鼠标!我自己找到了答案-我需要在整个过程中使用鼠标-我有一个鼠标向下和两个鼠标!