我在Firefox 中遇到问题尝试使用 jquery javascript将焦点设置为控件。虽然我的具体问题非常复杂,但即使是下面的简单测试用例也不适用于我。找到输入,其值已更改但输入未聚焦
仅限Firefox出现问题
在Windows 7上尝试使用Firefox 44.0.2 它适用于MS IE 10和Chrome
./reset.sh --ios --real-safari
$().ready(function() {
$("#I").val(3);
$("#I").focus(); // JQuery focus - does not work
var ctl = document.getElementById('I')
ctl.value='DOM';
ctl.focus(); // DOM Native focus - does not work
})
答案 0 :(得分:1)
我认为将重点放在Firefox上存在问题,有一种解决方法涉及使用focusout。见下文:
$().ready(function() {
$('#I').val(3);
$('#I').focusout(function() {
setTimeout(function() {
$(this).focus();
}, 0);
});
$('#I').focus();
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="I" />
&#13;
答案 1 :(得分:1)
这种准备活动风格:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>This should work</title>
</head>
<body>
<div class="form-group form-animate-text col-lg-6 col-xs-12 col-md-6">
<select class="form-text" id="val_equipfc" name="val_equipfc" onChange="checkOption(this)" required>
<option value="A">Yes</option>
<option value="B">No</option>
</select>
<span class="bar"></span>
<label><span style="color:red">*</span>With Equipment?</label>
</div>
<div class="form-group form-animate-text col-lg-6 col-xs-12 col-md-6">
<input type="text" class="form-text" id="val_equipnofc" name="val_equipnofc">
<span class="bar"></span>
<label><span style="color: red">*</span>Number of Equipment/s</label>
</div>
<script type="text/javascript">
function checkOption(obj) {
var input = document.getElementById("val_equipnofc");
input.disabled = obj.value == "B";
}
</script>
</body>
</html>
很久以前就弃用了,最好不要使用它。
您可以使用$().ready(function() {
属性:
autofocus
&#13;
$(document).ready(function() {
$('#I').val(3);
});
&#13;
而不是jQuery尝试触发DOM <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type=text id=I autofocus>
事件:
.focus()
&#13;
$(document).ready(function() {
$('#I').val(3);
$('#I')[0].focus();
});
&#13;