2015-05-04 96 views
0

我無法在jQuery中找到正確的代碼。 我可以使用此代碼專注於'.first'類的下一個輸入。但是,如果我不在「.first」輸入上,它會轉到第一個「.first」輸入。專注於選定類的下一個輸入,即使在使用jQuery的另一個類輸入上

這是代碼片段:

var $first_elements = $('.section .first'); 
 
    var $inputs = $('input'); 
 
    $inputs.on('keyup', function(e) { 
 
     if (e.which === 13) { 
 
      var ind = $first_elements.index(this); 
 
      $first_elements.eq(ind + 1).focus() 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
    <div class="section"> 
 
    <input class="first" name="input_1" /><input name="input_2" /><input name="input_3" /> 
 
    <br/> 
 
    <input class="first" name="input_4" /><input name="input_5" /><input name="input_6" /> 
 
    <br/> 
 
    <input class="first" name="input_7" /><input name="input_8" /><input name="input_9" /> 
 
    </div>

我怎麼可以去任何輸入.first選擇下一個輸入?

回答

1

更新你這樣的代碼,綁定keyup事件僅適用於有答案類first

var $inputs = $('input'); 
 
$inputs.on('keyup', function(e) { 
 
    if (e.which === 13) { 
 
    $inputs.next('input.first').focus() 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input class="first" name="input_1" /> 
 
<input name="input_2" /> 
 
<input name="input_3" /> 
 
<input class="first" name="input_4" /> 
 
<input name="input_5" /> 
 
<input name="input_6" />

+0

由於輸入元素,但這樣做的正好相反。如果焦點位於第一個元素上,它將重點關注下一個輸入。 如果您從任意輸入點擊輸入,它應該關注下一個.first元素 – dgtal

+0

如果您在.first輸入中,仍然可以運行。它應該從任何輸入 – dgtal

+1

@dgtal:現在檢查 –

相關問題