我有一个文本框,只有当按下Tab键才能从文本框中删除焦点时,我才想在其上执行onBlur事件。
我如何通过javascript执行此操作?
感谢任何帮助..
答案 0 :(得分:4)
在浏览器中,当控件具有焦点时按Tab键会将其移动到Tab键顺序中的下一个元素,导致当前元素失去焦点并发送模糊事件。
因此,您只需测试按Tab键并根据该功能调用您的功能,例如
<script type="text/javascript">
function showKey(e) {
return e.which || e.keyCode;
}
</script>
<form>
<input type="text" onkeydown="this.form.msg.value = showKey(event);">
<input type="text" name="msg">
</form>
以上显示tab键的值为9,因此您可以执行以下操作:
if ((e.which || e.keyCode) == 9) {
// tab key was pressed, do stuff
}
请注意,虽然大多数浏览器支持e.which,但其他浏览器支持e.keyCode。
根据您的评论,以下显示当控件失去焦点时,隐藏字段的值已设置:
<input type="text" onkeydown="this.form.msg.value = showKey(event);
(event);" onblur="alert(this.form.msg.value);">
答案 1 :(得分:1)
`enter code here`
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#theDiv input").bind("blur", function () {
setTimeout(function () {
var isOut = true;
$("#theDiv input").each(function () {
if (this == document.activeElement) isOut = false;
});
if (isOut) {
// YOUR CODE HERE
alert("I am called");
}
}, 10);
});
});
</script>
<!-- ... -->
<div id="theDiv">
<input type="text" value="Inside DIV 1" />
<input type="text" value="Inside DIV 2" />
<input type="text" value="Inside DIV 3" />
</div>
<input type="text" value="Outside DIV" />
答案 2 :(得分:-1)
<script type="text/javascript">
function callfunc() {
alert("Hello");
}
</script>
<form>
<input type="text" onblur="callfunc();">
</form>