验证在 ODOO 网站上不起作用
Validations not working in 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 中的验证有效,当文本字段为空白时它会显示一条警告消息(每个文本字段一个警告)。但是,在单击 email
字段的警报消息的 OK
之后,即使该字段为空,它也会提交表单。我检查了这个问题,发现只有我提供
才会有问题
<input type="submit" value="Submit"/>
我用
就解决了
<input type="button" value="Submit"/>
但我必须在控制器中进行一些计算,并且需要从数据库中检索一些数据以显示在下一页上。为此,不能使用 type="button"
,因为它只是 submit
表单并重定向到下一页而不调用控制器函数。 type="submit"
将调用控制器,但验证无法如前所述进行。此外,使用 javascript 中按钮的 onclick
事件提交 form
不会调用控制器。我想在表单上进行验证,然后调用控制器(提交时)。有什么方法可以在 ODOO v8 中实现吗?
为了在 ODOO 模板中强制填写字段,可以在输入字段上使用属性 required="required"
。
<input type="text" id="name" name="name" required="required"/>
我已经在 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 中的验证有效,当文本字段为空白时它会显示一条警告消息(每个文本字段一个警告)。但是,在单击 email
字段的警报消息的 OK
之后,即使该字段为空,它也会提交表单。我检查了这个问题,发现只有我提供
<input type="submit" value="Submit"/>
我用
就解决了<input type="button" value="Submit"/>
但我必须在控制器中进行一些计算,并且需要从数据库中检索一些数据以显示在下一页上。为此,不能使用 type="button"
,因为它只是 submit
表单并重定向到下一页而不调用控制器函数。 type="submit"
将调用控制器,但验证无法如前所述进行。此外,使用 javascript 中按钮的 onclick
事件提交 form
不会调用控制器。我想在表单上进行验证,然后调用控制器(提交时)。有什么方法可以在 ODOO v8 中实现吗?
为了在 ODOO 模板中强制填写字段,可以在输入字段上使用属性 required="required"
。
<input type="text" id="name" name="name" required="required"/>