2017-09-19 8 views
2

ユーザーが送信ボタンを使用して詳細を入力した日に1回だけ(つまり)1回クリックした場合は、マイボタンを無効にする必要があります。翌日、自動的にボタンを有効にする必要があります。ボタンを1日に1回クリックし、JavaScriptとAngularJS 1を使用して翌日有効にする方法はありますか?

あなたはSajalが言ったようにあなたがDBの状態を維持することができバックエンドしている場合は、JavaScriptやAngularJS ..

+2

はクッキーを調べてください。 –

+2

データベース内の状態を維持する必要があります – Sajal

+0

フロントエンドから行うことができる最善の方法は、クッキーまたはlocalStorageにデータを保存することですが、誰でも簡単に削除することができます。 Webブラウザまたは他のデバイスでは、ボタンを再度クリックすることができます。だからあなたはSajalが言ったようにデータベースを使うことを検討すべきです。 – Fuross

答えて

2

で私を助けていますが、angularjs/JavaScriptとフロントエンドソリューションのクッキー(クリスが言った)またはのlocalStorageについて質問されているので、

https://www.w3schools.com/js/js_cookies.asp https://www.w3schools.com/html/html5_webstorage.asp

:移動するための方法である、あなたはW3Schoolsの上

の詳細情報をリセットするために、毎日のボタンを設定することができますクッキーを設定し、クッキーに基づきます

クッキーを修正することができますので、フルプロテクトソリューションが必要な場合は、DBが最良の方法です。

0

クリックのステータスをlocalstorageに保存できますが、このソリューションは安全ではありません。 サーバー側のコントロールを追加する必要があります。

0

タイムアウト機能を使用できます。タイムアウトの特定の時間を与えてから、そのタイムアウト後にボタンを有効にすることができます。

EX:

var theInterval = $interval(function(){ 
     //Enable button 
    }.bind(this), time); 
+0

このソリューションでは、ブラウザを開いたままにしておく必要があります。実際には実際にはうまくいかない場合があります。 – pegla

+0

このユーザーとブロともになるこのためにローカルストレージに時間を保存することができます。ブラウザが開くと、ボタンを有効にする残りの時間が計算されます。 –

0

あなたはのlocalStorageを使用することができます。

<button ng-disabled="!buttonIsActive()" ng-click="onClick()"></button> 

$scope.buttonIsActive = function() { 
    var now = new Date(); 
    var day = now.getDate(); 
    var lastClickDay = parseInt(localStorage.getItem("last-click-day"));   
    return day > lastClickDay; 
} 

$scope.onClick = function() { 
    var now = new Date(); 
    var day = now.getDate(); 
    localStorage.setItem("last-click-day", day); 
    // ... Do something else here 
} 
関連する問題