如何在odoo 10中为按钮单击事件添加java脚本处理程序?



我想使用 java 脚本为标头中的按钮创建一个处理程序。 我的视图模型如下:

<template id="assets_backend" name="petstore" 
inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" 
src="/mypetstore/static/src/js/model_access.js">
</script>
<link href="/mypetstore/static/src/css/petstore.css" 
rel="stylesheet">
</link>
</xpath>
</template> 

<record model="ir.ui.view" id="my_pet_store_form">
<field name="name">my_pet_store_form</field>
<field name="model">petstore.message</field>
<field name="type">form</field>
<field name="arch" type="xml">
<header>
<button name="click_me" string="Click" 
class="oe_highlight"/>
</header>
<form string="Message of the day">
<group col="2">
<group>
<field name="data"/>
</group>
</group>
</form>
</field>
</record>

当用户单击"click_me"按钮时,它会调用一个简单的javascript函数或操作客户端。只需打印警报。 JS部分: odoo.define('mypetstore.model_access', function (require( { "使用严格"; var class = require('web.类"(; var Widget = require('web.小部件"(; var core = require('web.core'(; var utils = require('web.utils'(;

jq('#click_me').bind('click', function(){
alert("hello");
});  
});

首先,我建议你给要使用的对象一些ID属性。 喜欢

<button name="click_me" id="click_me" string="Click" 
class="oe_highlight"/>

JQuery:

jq('#click_me').bind('click', function(){
alert("hello");
});

这就是你的按钮应该是什么样子的,只需添加onclickwhish 是你的处理程序。

<header>
<button onclick="myFunction()" name="click_me" string="Click" 
class="oe_highlight"/>
</header>

myFunction()将是你的JavaScript代码。

现在警报代码将是这样的:

<script type = "text/ javascript">  
function myFunction() {
alert("Hello! I am an alert box!!");
}
</script>  

希望对您有所帮助。