2016-09-02 4 views
1

送信ボタンを押してしばらくの間、障害を適用しました。 15秒後に.... ...私を助けてください..私はページを更新していた場合、ボタンが有効になりますBT ...]ボタンがディアブル時間を失い、有効取得ボタンをリフレッシュした後にボタンを無効にしておく必要があります

$(window).load(function(){ 
 
var enableSubmit = function(ele) { 
 
    $(ele).removeAttr("disabled"); 
 
} 
 

 
$("#submit").click(function() { 
 
    var that = this; 
 
    $(this).attr("disabled", true); 
 
    setTimeout(function() { enableSubmit(that) }, 15000); 
 
}); 
 
}); 
 

 

 
    var count = 1; 
 
    function setColor(btn, color) { 
 
     var property = document.getElementById(btn); 
 
     if (count == 0) { 
 
      property.style.backgroundColor = "#FFFFFF" 
 
      count = 1;   
 
     } 
 
     else { 
 
      property.style.backgroundColor = "#7FFF00" 
 
      count = 0; 
 
     } 
 
    }
<style type="text/css"> 
 
input[disabled] { 
 
\t background-color:#FF6347; 
 
} 
 
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="button" id="submit" value="submit" class="btn" />

+0

コードが機能しないため、jQueryを含めてください。 –

+0

あなたはページをリフレッシュして新鮮なスタートにして、あなたのディセーブルとタイマーはページのリロードに耐えられません。 –

+0

このためにサーバー側のコードを記述する必要があります。値をクッキーに保存します。ページをリロードして無効にするたびにCookieの値を確認してください。 – Ish

答えて

2

あなたができることは、ブラウザのlocalstorage(HTML5の機能)を使用してボタンの状態を保存し、ページの読み込み時にlocalstorageからその状態を取得し、JSを使用してボタンに割り当てます。 localstorageを使用するには、 http://www.w3schools.com/html/html5_webstorage.aspのリンクをご覧ください。あなたの投稿機能で

:コードの先頭に

$("#submit").click(function() { 
    var that = this; 
    $(this).attr("disabled", true); 
    localStorage.setItem("button-state", 'true'); 
    setTimeout(function() {  $("#submit").attr('disabled',true);}, 15000); 
}); 

とウィンドウ内のonloadイベント:ここ

$(window).load(function(){ 
    var buttonState=Boolean(localStorage.getItem("lastname")); 
    $("#submit").attr('disabled',buttonState); 
}); 
+0

(タイムアウトの「ボタン状態」をクリアして、ロード時にタイムアウトを再開することを忘れないでください) –

1

は、あなたが正確に所望の時間を計算することができますもう少し精巧な回避策です。私はコードがそれ自身のために説明すると思う、そうでなければただ尋ねる。また、ニーズに合わせて調整することもできます。 See jsfiddle

注:jsfiddleでCookieのメソッドを見つけることができます。

$(function(){ 
    Program.Init(); 
}); 

var Program = { 

    Init: function(){ 
     this.$target = $('#submit').attr("disabled", true); 
     this.EnableSubmit(); 
     this.EventHandler(); 
    }, 

    EnableSubmit: function(){ 
     var value = this.Cookies.Get('submit_button'); 
     var now = Date.now(); 
     if(!value) { 
      this.$target.removeAttr("disabled"); 
      return; 
     } 
     setTimeout(function() { Program.EnableSubmit(); }, value - now); 
    }, 

    Submit: function(){ 
     this.$target.attr("disabled", true); 
     this.Cookies.Set('submit_button', Date.now() + 15000, 0.25, { expire_in: 'minutes' }); 
     setTimeout(function() { Program.EnableSubmit(); }, 15000); 
    }, 

    EventHandler: function(){ 
     this.$target.on('click', function(){ Program.Submit(); }); 
    } 

}; 
関連する問題