有没有更简洁的方法来完成同样的事情?我正在尝试将焦点设置为第一个空字段,即电子邮件输入或密码输入。
$(document).ready(function() {
if ($('#email_address').val() == '') {
$('#email_address').focus();
} else {
$('#password').focus();
}
});
我的HTML表单如下所示:
<form>
<input type="email" id="email_address" />
<input type="password" id="password" />
</form>
答案 0 :(得分:1)
您可以尝试将这两个元素作为目标,然后使用filter
函数找到第一个为空的元素。
下面的代码就是一个例子(它检查长度并确定哪些元素没有内容):
$('#email_address,#password').filter(function () { return $(this).val().length == 0; })[0].focus()
这假设您要检查以确保其中一个值已为空。
修改:
经过进一步思考,我想您可以使用以下选择器来定位第一个空的<input>
元素并将其重点关注:
$('input:empty').focus();
答案 1 :(得分:1)
var $email = $('email_address')
, $field = $email.val() === '' ? $email : $('#password')
;
$field.focus();
或过滤,虽然我不相信这是立即明确的。