将焦点设置为在验证器范围

时间:2015-12-30 17:18:34

标签: javascript jquery validation

我正在显示一个输入字段,后跟一个br标签和一个用于验证消息的范围。登录表单中有三个。我想找到第一个带有可见验证消息的字段(span指定了一个类),并将焦点设置为与span相关的输入。

我的html看起来像这样:

<div id="loginForm">
    <label class="formLabel" for="Login_LastName">Your last name</label>
    <input id="Login_LastName" name="Login_LastName" type="text" maxlength="31" style="width:200px;" /><br />
    <span id="Login_LastName_validator"></span>

    . . .
</div>

我正在尝试使用以下javascript,但它没有找到输入:

$("#loginPanel").find("validationMsg:first").prev("input").focus();

我可以找到它出现的验证范围,因为我可以提醒内容:

alert($("#loginPanel").find(".validationMsg:first").html());

我似乎无法找到输入对象来设置焦点。

我通过javascript设置validationMsg:

if(!$.trim($("#Login_LastName").val())) {
    $("#Login_LastName_validator").html("Your last name is required<br /><br />")
        .addClass("validationMsg");
    loginFormValid = false;
}
else {
    $("#Login_LastName_validator").html("")
        .removeClass("validationMsg");
}

1 个答案:

答案 0 :(得分:0)

找到解决方案。我想我必须通过break标签。看起来像prev()只检查前面的一个元素?它不继续?

$("#loginPanel").find(".validationMsg:first").prev().prev("input").focus();