2017-02-11 27 views
0

以下2個js函數可以切換與禁用類的按鈕。我希望禁用狀態依賴於Python代碼中的全局變量filelength,但不能想到這樣做的簡單方法。我能想到的唯一方法是擁有2個完全相同但獨立的模板,其中一個禁用按鈕,另一個模板啓用。基於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> 

預期的反覆將產生其中elides的「禁用」以下alt.html模板元素。

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

看來愚蠢需要2個獨立的模板(index.html,然後alt.html)來完成這個切換,但我不認爲允許我只是改變index.html替代的。起初我以爲jinja2會提供所需的功能,但這似乎不正確。

如何在沒有使用python和GAE的第二個模板的情況下完成此操作?

爲了更加完整,下面我將展示我的python應用程序的相關狀態。

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

在模板index.html只需使用Jinja2的這樣定義其中buttonclass值被定義爲在python要麼buttonbutton disabled使用「如果... else」結構類的屬性。

<button id="Test" class="{{ buttonclass }} " > 
Test 
</button>