2017-05-01 5 views
1

簡単な自動送信を作成したいと思います。たとえば、ユーザー1秒で入力に何も入力しなかったり、Enterキーを押した場合は、それが送信されます。私のコード:JS(タイムアウト、TimeInterval)経由の自動送信フォーム

$(document).on('keypress', $('input'), function(e) { 
 
    console.log('clear') 
 
    
 
    clearInterval(SubmitInterval); 
 
    
 
    if (e.which == 13) { 
 
    console.log('submit') 
 
    } 
 
    
 
    var SubmitInterval = setInterval(function() { 
 
    console.log('submit') 
 
    clearInterval(SubmitInterval); 
 
    }, 1000); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type=text id=1 />

しかし、それはひどく仕事。 ありがとう

答えて

0

この問題は、各キー入力でSubmitInterval変数を再定義することによるものです。その代わりに、イベントハンドラの外側で宣言します。これで、すべてが正常に動作します

var submitInterval; 
 

 
$(document).on('keypress', 'input', function(e) { 
 
    console.log('clear') 
 
    
 
    clearInterval(submitInterval); 
 
    
 
    if (e.which == 13) { 
 
    console.log('submit') 
 
    } 
 
    
 
    submitInterval = setInterval(function() { 
 
    console.log('submit') 
 
    clearInterval(submitInterval); 
 
    }, 1000); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type=text id=1 />

0

:これを試してみてください。ありがとう。

var SubmitInterval; 
 
$(document).on('keypress', $('input'), function(e) { 
 
    clearInterval(SubmitInterval); 
 
    SubmitInterval = setInterval(function() { 
 
    console.log('submit'); 
 
    clearInterval(SubmitInterval); 
 
    },1700); 
 
    if(e.which == 13) { 
 
\t console.log('submit'); 
 
\t clearInterval(SubmitInterval); 
 
\t }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type=text />

関連する問題