我有一個輸入(各種)的三個子組的形式。子組由類名(.group_1,.group_2,.group_3)表示。jQuery - removeClass在所有輸入都獲得焦點後?
我想這樣做是這樣的:
一旦所有特定類的輸入(例如.group_1),已收到焦點(或者被改變,或者將工作),類單獨跨度是刪除(假定使用removeClass)。如果特定班級中的5個輸入中只有4個獲得了焦點(或已更改),則該班級將保持在該範圍內直到第5個焦點或焦點被更改。
希望是有道理的,在此先感謝您的幫助。
我有一個輸入(各種)的三個子組的形式。子組由類名(.group_1,.group_2,.group_3)表示。jQuery - removeClass在所有輸入都獲得焦點後?
我想這樣做是這樣的:
一旦所有特定類的輸入(例如.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');
}
});
啊!打敗我吧。我jsfiddling並提出了基本上相同類型的解決方案:http://jsfiddle.net/tomtheman5/dB2Gs/ –
這種解決方案看起來好像它可能工作得很好,我感謝您的迴應。我將'.on('focus')'改爲'.change()',這樣我就可以強制改變輸入。作爲後續,我如何操作它,以便組中的任何單選按鈕將被視爲一個變化?換句話說,如果單選按鈕「是」更改爲單選按鈕「否」(相同名稱屬性),是否有方法將該更改添加到'selectedMarkerClass'(按照您的示例)?謝謝! – user1647550
我可能會添加,我想這樣做而不會爲每個輸入創建單獨的選擇器。我正在使用的表單有數百個字段。 – user1647550