2017-08-15 4 views
3

私はasp.netのjavascriptを使ってカウントダウンタイマーを作成しました。完了後、Button1は無効になりますが、ページをリロードすると、カウントダウンタイマーがリセットされ、Button1が有効になります。asp.netでJavascriptを使用してボタンを永久に無効にするにはどうすればいいですか?

タイマーがゼロの場合、Button1を恒久的に無効にしたいと考えています。私のコードは次のとおりです。

var tim; 
 
var min = 01; 
 
var sec = 00; 
 
var f = new Date(); 
 
function f1() { 
 
    f2(); 
 
} 
 

 
function f2() { 
 
    if (parseInt(sec) > 0) { 
 
    sec = parseInt(sec) - 1; 
 
    document.getElementById("showtime").innerHTML = ""+min+" Minutes ,"+sec+" Seconds"; 
 
    tim = setTimeout("f2()", 1000); 
 
    } 
 
    else { 
 
    if (parseInt(sec) == 0) { 
 
     min = parseInt(min) - 1; 
 
     if (parseInt(min) == -1) { 
 
     clearTimeout(tim); 
 
     $("#Button1").prop('disabled', true); 
 
     } 
 
     else { 
 
     sec = 60; 
 
     document.getElementById("showtime").innerHTML = "" + min + " Minutes ," + sec + " Seconds"; 
 
     tim = setTimeout("f2()", 1000); 
 
     } 
 
    } 
 
    } 
 
}
<body onload="f1()"> 
 
<div><h3>Time will be finished after:</h3> 
 
</div> 
 
<div id="showtime"></div> 
 
<div> <asp:Button ID="Button1" runat="server" Text="Submit"/></div>` 
 
</body>

+0

MMMMMMでクッキー – Gerard

+0

を使用するように作るページを更新するたびにカウントダウンが –

+0

を再起動し、これは@ashik :( – Owais

答えて

-1

Javascriptを

document.getElementById("myBtn").disabled = true; 

またはuはjquery-をクリックして、それを必要とする場合

$('.rbutton').on('click',function() { 
$(this).prop("disabled",true); 
}); 
+0

感謝が直面する主な問題イムですが、私ボタンをしばらく無効にしていますが、ウェブフォームをリロードした後、もう一度ボタンが有効になり、タイマーが再び開始されます。 – Owais

0

ページをリロードすると、状態ページが完全にリセットされ、新しい訪問者があなたのページを見つけたかのようになります訪問の間にその状態を保存できるようにする必要があります。

1つの解決策は、タイマが期限切れになったときに設定できるuse a cookieになり、ページが読み込まれたときにクッキーが存在するかどうかを確認します。そこにいる場合は、タイマーなしでボタンをすぐに無効にしてください。

もっと複雑な解決策は、サーバー上にセッション状態を保存することですが、サーバー側で何を行っているのかはわかりません。

0

タイマーがオフのときにCookieを設定できます。そして、すべてのページで、クッキーの負荷をチェックし、必要に応じてボタンを無効にします。他の方法はありません。

FYI:同じCookieを使用して、サーバー側でボタンを無効にすることができます。

1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script> 

<script> 
function f2() { 
    if (parseInt(sec) > 0) { 
    sec = parseInt(sec) - 1; 
    document.getElementById("showtime").innerHTML = ""+min+" Minutes ,"+sec+" Seconds"; 
    tim = setTimeout("f2()", 1000); 
    } 
    else { 
    if (parseInt(sec) == 0) { 
    min = parseInt(min) - 1; 
     if (parseInt(min) == -1) { 
     clearTimeout(tim); 
     $("#Button1").prop('disabled', 'true'); 
     storeValue('disabled', 'true'); 
     } 
     else { 
     sec = 60; 
     document.getElementById("showtime").innerHTML = "" + min + " Minutes ," + sec + " Seconds"; 
     tim = setTimeout("f2()", 1000); 
     } 
    } 
    } 
} 
function storeValue(key, value) { 
    if (localStorage) { 
    localStorage.setItem(key, value); 
    } else { 
    $.cookies.set(key, value); 
    } 
} 

function getStoredValue(key) { 
    if (localStorage) { 
    return localStorage.getItem(key); 
    } else { 
    return $.cookies.get(key); 
    } 
} 
function f1() { 
f2(); 
var model =getStoredValue('disabled'); 
if(model == 'true') 
{ 
    $("#Button1").prop('disabled', 'true'); 
} 
} 
var tim; 
var min = 01; 
var sec = 00; 
var f = new Date(); 
</script> 

使用このコードをしてthrid party localstorageはブラウザ

+0

貴重な時間と助けを借りてありがとうございます:) @サネシェ – Owais

関連する問題