我正在使用twitter bootstrap和jquery validate插件
我有一个表格行,如下所示:
<div class="form_row" >
<div class="control-group">
<label class="control-label" for="input01">home phone</label>
<div class="controls">
<input type="number" class="span4" class="input-xlarge" id="home_phone" name="home_phone" value="<?php echo $this->property->home_phone ?>" rel="popover" data-content="Re-enter your home phone." data-original-title="homephone" >
<input type="number" class="span4" class="input-xlarge" id="cell_phone" name="cell_phone" value="<?php echo $this->property->cell_phone ?>" rel="popover" data-content="Re-enter your cell_phone." data-original-title="cell_phone" >
</div>
</div>
验证后,当我在firebug中查看它时,带有错误的输入后跟span.error。我想选择这些输入。到目前为止,我有:
$.filter(function() { return $(this).next("span.error"); })
但我收到以下错误:
TypeError:elems未定义 [打破此错误]
返回elems.length === 1?
有人可以帮我一把吗?
谢谢,
比尔
答案 0 :(得分:4)
你试过这个吗?
$("input").filter(function() { return $(this).next("span.error").length == 1; })
答案 1 :(得分:0)
试试这个:
$('input').filter(function(index) { return typeof($(this).next("span.error")!='undefined'); })
答案 2 :(得分:0)
只需选择span.error
元素,然后向后处理input
元素:
var inputs = $('span.error').prev('input');
顺便说一下,对于它的价值,这种方法(尽管只是略微)比使用filter()
方法更快(在Chromium 19中)。显然,这是微观优化。当然,假设支持document.querySelectorAll()
和previousElementSibling
的浏览器,使用本机DOM方法甚至更快。但是,坦率地说,不是我想象的那么多。
参考文献: