我有一个包含三个输入子组(各种)的表格。子组由类名(.group_1、.group_2、.group_3)表示。
我想做的是:
一旦特定类(例如 .group_1)的所有输入都已获得焦点(或已更改,两者都可以),则删除单独跨度的类(假设使用 removeClass)。如果特定类中的 5 个输入中只有 4 个已获得焦点(或已更改),则该类将保持在跨度上,直到第 5 个被关注或更改。
希望这是有道理的,在此先感谢您的帮助。
像这样简单的事情怎么样:
http://jsfiddle.net/zerkms/7EUas/
var selectedMarkerClass = 'was-selected';
$('.group_1').on('focus', function() {
$(this).addClass(selectedMarkerClass);
if ($('.' + selectedMarkerClass).length == $('.group_1').length) {
$('div').text('each input was selected at least once');
}
});
?
您可以使用一些伪类将输入标记为关注focus
事件并检查它们是否都被关注。如果是,则从您的跨度中删除课程。
HTML:
<span class="group1 red">Test span</span>
<div id="group1-container">
<input class="group1" type="text" />
<input class="group1" type="text" />
<input class="group1" type="text" />
<input class="group1" type="text" />
<input class="group1" type="text" />
</div>
JavaScript:
group1Container$ = $('#group1-container');
group1$ = $('input.group1', group1Container$);
group1$.on('focus', function() {
var input$ = $(this);
input$.addClass('focused');
if(!$('input.group1:not(.focused)', group1Container$).length) {
$('span.group1').removeClass('red');
group1$.off('focus');
}
});