2014-12-20 206 views
0

用户输入他们的地址和年龄。当查找按钮被击中时,它将显示输入。但是,对于输入无效的情况,我想添加一条错误消息。检查用户输入是否有效

如何检查输入是否无效并给出错误消息?我希望我的错误消息与输入值相同的页面上。代码无法正常工作。

<div class = "Information"> 
    <h2>Your Infomation</h2> 
    <form action="" method=post> 
    if (error){ 
     <p id="error"><strong></strong>{{error}} 
    } 
    <div id = "address"> 
     <label>address</label> 
     <input type=text name=address value="{{request.form.address}}"> 
    </div> 
    <div id = "age"> 
     <label>age</label> 
     <input type=text name=age value="{{request.form.age}}"> 
    </div> 
    <div class = "Input"> 
     <a href="/results"> 
     <button type = "button" class = "btn btn-primary" value="find" >Find!</button> 
     </a> 
    </div> 
    </form> 
</div> 
@app.route('/results',methods=['GET','POST']) 
def result(): 
    error = None; 
    if request.method == 'POST': 
     if request.form['age'] != '14': 
      error='You did not enter proper values' 
    return render_template('template.html',error=error) 

回答

3

您需要使用正确的语法神社渲染模板:

{% if error %}<p id="error">{{ error }}</p>{% endif %} 

除此之外,你已经添加到您的表单按钮实际上没有提交表单,因为你已经给它“按钮”类型而不是“提交”类型,并且由于某种原因将它包装在锚点中。替换的<div class="Input">与内容:

<button type="submit" class="btn btn-primary" value="find">Find!</button> 
+0

由于它的工作原理 – FamilyMaze

+0

你能告诉我为什么如果request.method ==“POST”:当我年龄键入14不会被调用? – FamilyMaze