2017-02-09 13 views
0

同じフォームの入力が空である/入力されている場合、ボタンを無効/有効にする方法を知っています。許可を保持している間に入力/非入力のボタンを無効/有効にする方法

最初にバックエンドのアクセス許可を適用し、一部のボタンを無効にしたとします。アクセス権のない人が入力を書き込んだときに、それらが再び有効にならないようにするにはどうすればよいですか?

私も理論上、すべての入力を許可に基づいて無効にできますが、より良い解決策を提案できますか? Djangoテンプレートで

例:

<button type="submit" class="btn btn-default" id="my_button" 
      {% if not can_post %}disabled{% endif %}>Apply 
    </button> 
+0

問題は明確ではありませんが、一般的には、正しいアクセス許可(表示/非表示の要素...)でUIを表示してから、ビュー/フォームレベルで送信時に検証する必要があります。 – HassenPy

+0

@HassenPy私はUIを非表示にしたくないので、権限で無効にしたいので、誰かが要素を見ることができますが、 "書き込み"はしません。 – Saksow

+1

ユーザーの権限に関連したアクションの例です。あなたの投稿を再読み込みしました。これはさまざまな方法で行うことができます。プロジェクトの設定にもよりますが、フレームワークのない軽いJavaScriptを使用している場合は、あなたのボタンに 'data-has-perm = 0'のように、あなたの有効化スクリプトではその許可データのチェックを追加するだけです。 – HassenPy

答えて

1

あなたは多くの方法でこれを行うことができ、プロジェクトの設定に依存します。あなたがいない大規模なフォームUI変更で光JavaScriptをやっている場合は

、あなたは単にあなたが再前に、あなたの可能スクリプトにちょうどその権限のチェックを追加し、初期の権限を定義し、ボタンdata-has-perm=0data attributeにドロップすることができます - ボタンを有効にします。

しかし、あなたは大規模なフォームのUIの変更を行う場合、私はこれを行うための最善の方法は、例えばのように、すべてのボタンの状態オブジェクトを作成することであると思います:

var buttons = { 
    '#b1': {'initPerm': 0}, 
    // in your templates file simply do '#b1': {'initPerm': {% if not can_post %}0{% else %}1{% endif %}' 
} 

、あなたはすべて保持するオブジェクトを持っていますあらかじめ定義されたボタンの状態を確認したら、再度有効にする方法で確認します。

いずれの場合でも、送信したフォームのユーザー権限がビューまたはフォームであることを確認することを忘れないでください。

関連する問題