2012-07-02 70 views
0

我有一個簡單的模型形式的,正被通過以下的Jinja2模板呈現:添加驗證(jQuery和服務器側)向wtforms

<form method="POST" action=""> 
    <table> 
     {% for field in form %} 

     <tr>{{ field.label }}</tr> 
     <tr>{{ field()|safe }}</tr> 

     <tr> 
     {% if field.errors %} 
     <td> 
      <ul class=errors> 
      {% for error in field.errors %} 
      <li>{{ error }}</li> 
      {% endfor %} 
      </ul> 
     </td> 
     {% endif %} 
     {% endfor %} 
    </table> 
    <input type="submit" class="btn" value="Submit Form"/> 
    </form> 

我想定製wtforms的輸出和到每個表單字段被渲染,我想添加一個類"required"使用jQuery的客戶端驗證插件。

以下是我的AppEngine DB模式:

class Song(db.Model): 
    title = db.StringProperty() 
    lyrics = db.TextProperty() 
    duration = db.IntegerProperty() 
    movie = db.ReferenceProperty(Movie) 
    singer = db.ReferenceProperty(Singer) 

和下面是我的形式,呈現腳本:

SubTaskForm = model_form(Song, 
         exclude=('movie', 'singer'), 
         ) 

什麼是附加使用wtfroms驗證,還怎麼能驗證一個好辦法我附上class = required到表單字段?

讓我知道如何去做。

回答

1

一種方法是覆蓋python中的東西,在那裏你定義他們,另一件可以做的事情是,你可以嘗試在模板本身,<tr class="required"> 試試看,應該工作。

-1

渲染器(field())傳遞參數作爲生成的HTML中的屬性。因此,通過調用例如field(class ='required'),您可以根據需要標記字段並像往常一樣應用jquery validate插件。如果您的上下文將'class'視爲關鍵字,則可以傳入'class_'。詳情請致電致電備註WTForms.field

+0

記得類是帶有字段的_class(類是保留的) – dezza

2

查看此庫https://pypi.python.org/pypi/WTForms-ParsleyJS從WTForms服務器端驗證程序自動生成客戶端,parsley.js驗證標記。

http://codevisually.com/parsley-js/ Parsley.js是一個輕量級的(12k縮小版)表單驗證JavaScript庫,具有不同之處。它不使用JS驗證表單,而是使用數據屬性來實現相同的效果。它可以同時使用jQuery和Zepto,配置起來非常簡單,可以覆蓋幾乎所有Parsley默認行爲,以滿足您的確切需求。