清理jQuery代码

时间:2015-08-12 19:36:59

标签: jquery

有没有更简洁的方法来完成同样的事情?我正在尝试将焦点设置为第一个空字段,即电子邮件输入或密码输入。

$(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>

2 个答案:

答案 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();

或过滤,虽然我不相信这是立即明确的。