Javascript 在更改事件的下拉列表中
我的代码如下:Javascript 在更改事件的下拉列表中,javascript,jsp,Javascript,Jsp,我的代码如下: <!DOCTYPE html> <html> <body> <script> function tab() { current=document.getElementById("test"); next=document.getElementById("run"); if(current.value!="-1")
<!DOCTYPE html>
<html>
<body>
<script>
function tab()
{
current=document.getElementById("test");
next=document.getElementById("run");
if(current.value!="-1")
{
next.focus()
}
}
</script>
<select id="test" onchange="tab()">
<option value="-1">--select--</option>
<option value="1" >TEST</option>
<option value="2">RUN</option>
</select>
<input type="text" name="run"/>
</body>
</html>
定义:我有一个下拉列表,它有四个值。如果我在下拉列表中将一个值更改为另一个值,它会自动标记到文本框。根据我的代码,它工作正常
但问题是,当我在下拉列表中选择第一个值时,自动选项卡工作,并且再次从下拉列表中选择相同的值自动选项卡不工作。我知道问题出在事件中。没有变化,因此事件不会触发。请帮我纠正这个问题 尝试使用onBlur。它会解决问题
我认为这在html5中是可能的
onselect
没有id为run的元素,该元素正被以下引用:
document.getElementById("run");
你可能打算写:
<input type="text" name="run" id="run"/>
使用onBlur而不是onchange
当您离开对象而不必更改其值时,将触发onBlur事件
仅当您更改了字段的值时,才会调用onChange事件
请对此进行研究以了解尝试使用鼠标点击和键控事件作为解决方法:
var current=document.getElementByIdtest;
var next=document.getElementByIdrun;
var open=false//下拉列表已关闭
var watchOpen=函数{
open=!open;//标识下拉列表状态的反向标志
};
var tab=函数{
如果!打开和当前值!=-1{
其次,聚焦;
}
};
-挑选-
测验
跑
它在下拉列表中不起作用,因为根据我的场景,在更改下拉列表值时,将显示相应的标签和文本框,并在从下拉列表中选择值后自动移动到文本框。如果我们仅在单击外部时使用onblur事件调用,下拉事件将触发。它在下拉中不起作用,因为根据我的场景,在更改下拉值时,将显示相应的标签和文本框,并且在从下拉列表中选择值后,它将自动移动到文本框。如果我们仅在单击外部时使用onblur事件调用,则将触发下拉事件。在下拉列表中,onselect事件不可能