gpt4 book ai didi

JavaScript 没有被触发!奥多

转载 作者:行者123 更新时间:2023-11-29 15:32:58 26 4
gpt4 key购买 nike

我已经创建了一个基本模块来测试我的 .js 函数,但我不知道为什么它没有触发?这是我的模块的架构:

a_js
|static
|src
|js
a_js.js
|view
|a_js_view.xml
|call.xml
|__init__.py
|__openerp__.py
|a_js.py

这是我的文件:

a_js/__init__.py

import a_js

这是我的a_js/__openerp__.py

#a_js/__openerp__.py
# -*- coding: utf-8 -*-
{
'name': 'Pruebas JS',
'version': '0.1',
'website' : '',
'category': '',
'summary': '',
'description': """ - """,
'author': 'JS',
'depends': [
'base',
'web',
],
'data': [
"view/a_js_view.xml",
"view/call.xml",
],
'demo': [
],
'test': [
],
'installable': True,
'auto_install': False,
}

我的a_js/a_js.py

# -*- coding: utf-8 -*-
from openerp import models,fields,api
class a_js(models.Model):
_name="a.js"
numeros = fields.Integer('Números')
letras = fields.Char('Letras')
tiempo = fields.Date('Fecha')

我的a_js/view/a_js_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem name="JS" id="js_root_menu"/>
<menuitem name="JS" parent="js_root_menu" id="js_menu"/>
<record id="a_js_form" model="ir.ui.view">
<field name="name">a.js.form</field>
<field name="model">a.js</field>
<field name="arch" type="xml">
<form string="Invoice">
<header>
</header>
<sheet string="Datos">
<label string="Datos de Prueba" />
<field name="numeros" class="id_num"/>
<field name="letras"/>
<field name="tiempo"/>
</sheet>
</form>
</field>
</record>

<record id="a_js_action" model="ir.actions.act_window">
<field name="res_model">a.js</field>
<field name="view_type">form</field>
<field name="name">JS</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="JS" parent="js_menu" action="a_js_action" id="a_js_menu"/>
</data>
</openerp>

这是我的a_js/view/call.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_backend" name="a_js assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/a_js/static/src/js/a_js.js"></script>
</xpath>
</template>
</data>
</openerp>

这是我的a_js/static/src/js/a_js.js 文件:

openerp.a_js = function(instance) {
var QWeb = openerp.web.qweb;
_t = instance.web._t;
instance.web.FormView.include({
on_loaded: function(data) {
var self = this;
$('.id_num').keypress(function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
});
return self._super(data);
},
});
};

我只想在我的 numeros 字段中输入数字,为什么我的 js 函数没有被触发?请分享一些关于如何做到这一点的例子,或者一个指南!

最佳答案

您的脚本将被添加到资源之上,

<xpath expr="." position="inside"> 

因此,当您执行此操作时,请确保 view_form.js 已在您的脚本之前加载。

我认为你需要做的

<xpath expr="//script[@src='/web/static/src/js/view_tree.js']" position="after">
<script type="text/javascript" src="your script file path"></script>
</xpath>

另一件事首先通过放置警报函数来检查您的脚本是否将被加载,如果它被加载然后将警报放入函数内无论它是否正在调用。

关于JavaScript 没有被触发!奥多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32614024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com