【问题标题】:Set focus to input before validator span在验证器范围之前将焦点设置为输入
【发布时间】:2015-12-30 17:18:34
【问题描述】:

我正在显示一个输入字段,后跟一个 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");
}

【问题讨论】:

  • 请在您的代码中添加validationMsg span 的示例。
  • 您的代码似乎缺少某些部分,您可以分享一个 plunker 或类似的东西吗?
  • 没有遗漏,只是关键元素的亮点。

标签: javascript jquery validation


【解决方案1】:

找到了解决办法。我想我必须让它通过中断标签。看起来 prev() 只检查前一个元素?不继续了?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多