0

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 の検証が機能し、テキスト フィールドが空白の場合にアラート メッセージが表示されます (テキスト フィールドごとに 1 つのアラート)。OKただし、フィールドの警告メッセージをクリックするemailと、フィールドが空の場合でもフォームが送信されます。問題を確認したところ、提供した場合にのみ問題が存在することがわかりました

<input type="submit" value="Submit"/>

私が使用している場合、それは解決されます

<input type="button" value="Submit"/>

しかし、コントローラーでいくつかの計算を行う必要があり、データベースからデータを取得して次のページに表示する必要があります。このため、コントローラー関数を呼び出さずにフォームと次のページにリダイレクトするtype="button"だけでは使用できません。コントローラーを呼び出しますが、検証は前述のように機能しません。また、javascript でボタンのusingイベントを送信しても、コントローラーは呼び出されません。フォームの検証が必要で、コントローラーを呼び出します(送信時)。ODOO v8 でこれを実装する方法はありますか?submittype="submit"formonclick

4

1 に答える 1

1

ODOO テンプレートでフィールドを必須にするために、属性required="required"を入力フィールドで使用できます。

<input type="text" id="name" name="name" required="required"/>
于 2016-06-22T05:55:04.303 に答える