2017-02-11 28 views
0

次の2つのjs関数は、無効なクラスとの間でボタンを切り替えることができます。私は無効状態をグローバル変数filelengthのPythonコードに依存させたいが、そうする簡単な方法は考えられない。私が考えることができる唯一の方法は、2つの同一であるが別々のテンプレートを用意することであり、1つはボタンを無効にし、もう1つは有効にする。pythonの変数値に基づいてjavascript関数をトリガー

<script type="text/javascript" language="JavaScript"> 
    function enableButton(button){ 
    document.getElementById(button).removeAttribute('class'); 
     document.getElementById(button).setAttribute("class", "button"); 
    } 
    function disableButton(button){ 
     document.getElementById(button).setAttribute("class", "disabled"); 
    } 
    </script> 

次のindex.htmlテンプレート要素の機能を使用することを意図していました。

<button id="Test" class="button disabled" > 
Test 
</button> 

意図したトグリングは、「無効」を無効にする次のalt.htmlテンプレート要素を生成します。

<button id="Test" class="button" > 
Test 
</button> 

このトグルを達成するために2つの別々のテンプレート(index.htmlをとalt.html)を必要とする愚かなようだが、私は私がちょうどindex.htmlを変更することができる代替を考えることはできません。最初は、jinja2が必要な機能を提供すると思っていましたが、それは正しいとは思われません。

PythonとGAEを使用して2番目のテンプレートを使用せずにこれを行うにはどうすればよいですか?

次に、私は私のpythonアプリケーションの関連する状態を次に示します。テンプレートindex.html

import os 
import jinja2 
import webapp2 
import urllib 

filelength = 0 

class MainPage(BaseHandler): 

    def get(self): 
    global filelength 
    logging.info("text length in Main get: %s " % filelength) 
    template_values = {'filelength':filelength} 
     template = JINJA_ENVIRONMENT.get_template('index.html') 
     self.response.out.write(template.render(template_values)) 

    def post(self): 
    global filelength 
    url = self.request.get('URL', None) 
    text = urllib.urlopen(url).read() 
    logging.info("text length in Main post: %s " % len(text)) 
    filelength = len(text) 
    if filelength > 0: 
     return webapp2.redirect('/alt') 
    else: 
     return webapp2.redirect('/') 

class AltMainPage(BaseHandler): 

    def get(self): 
    global filelength 
    logging.info("text length in Alt get: %s " % filelength) 
    template_values = {'filelength':filelength} 
     template = JINJA_ENVIRONMENT.get_template('alt.html') 
     self.response.out.write(template.render(template_values)) 

    def post(self): 
    global filelength 
    url = self.request.get('URL', None) 
    text = urllib.urlopen(url).read() 
    logging.info("text length in Alt post: %s " % len(text)) 
    if filelength > 0: 
     return webapp2.redirect('/alt') 
    else: 
     return webapp2.redirect('/') 
    return webapp2.redirect('/') 

app = webapp2.WSGIApplication([ 
     ('/', MainPage), 
     ('/alt', AltMainPage), 
     ], 
     debug=True) 

答えて

0

単にbuttonclassの値を構築する「他...場合」を使用してpythonでbuttonまたはbutton disabledのいずれかとして定義され、このようなクラスの属性を定義するためにJinja2のを使用しています。

<button id="Test" class="{{ buttonclass }} " > 
Test 
</button> 
関連する問題