验证在ODOO网站中不起作用

时间:2016-06-21 13:21:37

标签: openerp odoo-8 odoo-website

我在ODOO v8中为它创建了一个模板和一个控制器。以下是模板:

<template id="myTemplate">
    <t t-call="myTemplateHeader"/>
    <div class="myClass">
        <form action="/myControllerAction" name="myTemplateForm">
            <input type="text" id="name" name="name"/>
            <input type="text" id="lname" name="lname"/>
            <input type="text" id="email" name="email"/>
            <input type="submit" value="Submit"/>
        </form>
    </div>
</template>

我为行动/myControllerAction编写了一个控制器。

@http.route(['/myControllerAction'], type='http', auth="public", website=True)
def index(self, **post):
    data = {}
    # some action here
    # to submit and fetch values
    request.website.render("my_module.mySecondTemplate", data)

我在表单中的字段中添加了验证,以便在不输入给定的所有文本字段中的值的情况下无法提交表单。 JS中的验证工作,它在文本字段为空时显示警告消息(每个文本字段一个警报)。但是,在单击OK以显示email字段的警报消息后,即使字段为空,它也会提交表单。我已检查过该问题,发现问题仅在我提供

时才存在
<input type="submit" value="Submit"/>

如果我使用

,它将被解决
<input type="button" value="Submit"/>

但是我必须在控制器中进行一些计算,并且需要从数据库中检索一些数据以在下一页显示。为此,type="button"不能仅用作submit表单,而是在不调用控制器函数的情况下重定向到下一页。 type="submit"将调用控制器,但验证不能像前面所述那样工作。在javascript中使用按钮的form事件提交onclick也不会调用控制器。我希望在表单上进行验证,然后调用控制器(在提交时)。有什么办法可以在ODOO v8中实现这个吗?

1 个答案:

答案 0 :(得分:0)

为了在ODOO模板中强制使用字段,可以在输入字段中使用属性required="required"

<input type="text" id="name" name="name" required="required"/>