好吧,我现在已经尝试了一段时间。我的逻辑似乎在我的眼中是正确的,但必须有一些我缺少的东西。这是我的代码:
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;
}
但这也不起作用。
感谢您的帮助。
答案 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")
仍然有效