如何选择输入字段的兄弟

时间:2012-03-29 00:38:31

标签: jquery validation siblings

好吧,我现在已经尝试了一段时间。我的逻辑似乎在我的眼中是正确的,但必须有一些我缺少的东西。这是我的代码:

html:

<div class="login-input-wrap">
    <h3>First Name:</h3>
    <input type="text" name="firstname" />
</div>

带有一些jquery的javascript

function validateSignUp()
{
    var fname = $('input [name|="firstname"]');
    if (fname.val() == "" || fname.val() == null)
    {
        fname.parent().children('h3').css("color", "red");
        alert ("here it is");
    }
    return false;
}

在提交表单时调用validate,调用警报但css不起作用。我也尝试过这样选择输入的兄弟:

function validateSignUp()
{
    var fname = $('input [name|="firstname"]');
    if (fname.val() == "" || fname.val() == null)
    {
        fname.siblings('h3').css("color", "red");
        alert ("here it is");
    }
    return false;
}

但这也不起作用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

删除此选择器中input之后的空格。在所有适用于同一对象的事物之间必须没有空格。您没有正确选择input标记,因此空的jQuery对象没有兄弟姐妹,所以其余的都不起作用。改变这个:

$('input [name|="firstname"]')

所以它看起来像这样:

$('input[name|="firstname"]')

您可以在此处查看:http://jsfiddle.net/jfriend00/YyUAx/


你也可以简化这个:

if (fname.val() == "" || fname.val() == null)

将其改为:

if (!fname.val()) {

答案 1 :(得分:0)

​$("input").prev("h3").css("color","red")​​​​​​​​​​​​​​​​​​​​​​​​

获取前一个元素

编辑:显示标记,

​$("input[name=firstname]").prev("h3").css("color","red")​​​​​​​​​​​​​​​​​​​​​​​​

仍然有效