- 第一种写法
# xml 文件(form表单)
<div class="media-body">
<form class="o_portal_chatter_composer_form" t-attf-action="/product/comment" method="POST">
<div class="mb32">
<t t-set="attributes" t-value="my_order._get_my_order_sale(my_order)"/>
<t t-if="not attributes">
<textarea rows="4" name="message" class="form-control"
placeholder="Write a message..."></textarea>
<input type="hidden" name="order" t-att-value="my_order.id"/>
<button t-attf-class="o_product_comment_btn btn btn-primary mt8
o_website_message_post_helper" type="submit">Send
</button>
</t>
</div>
</form>
</div>
# js文件
var ajax = require('web.ajax');
var core = require('web.core');
$('button.o_product_comment_btn').on('click', function (event) {
event.stopPropagation();
ajax.rpc('/product/comment', {
id: $('#orderId').val(),
message:$('#message').val(),
action: 'submit',
}).then(function (res) {
return $.Deferred();
});
});
# py文件
class ProductCommentMessage(http.Controller):
@http.route('/product/comment', type='http', methods=['POST'], auth='public', csrf=False)
def product_comment(self, **kw):
url = request.httprequest.referrer
sale_order = request.env()['sale.order'].sudo().search([('id', '=', int(kw['order']))])
data = {'name': sale_order.name, 'author_id': request.env.user.partner_id.id, 'body': kw['message'],
'res_id': sale_order.id, 'model': 'sale.order', 'create_date': datetime.date.today()}
request.env()['product.comment.message'].sudo().create(data)
return redirect(url) #return 刷新当前页面
-
第二种写法
通过按钮 ID 去调用方法及路径,获取验证码按钮,开始倒计时
图片.png
#py文件里
@http.route(['/validate/signup/'], type='json', auth='public', method=['POST'])
def phone_signup(self, **kw):
if len(request.params.get('login')) == 11:
validate = self.validate_phone(request.params.get('login'))
request.session['_phone_validate'] = validate[0]
request.session['_validate_time'] = fields.Datetime.now()
if validate[1] == 'OK':
return {
'status': 'OK',
'msg': _('params'),
'validates': validate[0]
}
else:
return {
'status': 'No',
'msg': _('params'),
'validates': validate[0]
}
#js 文件里
document.getElementById("codeBtn").onclick = function () {
var login = $('#login').val();
var myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
if (!myreg.test(login)) {
alert("请输入正确的手机号码!")
return false;
}
time(this, login);
if (login.length === 11) {
ajax.rpc('/validate/signup/', {
id: $('#orderId').val(),
login: login,
}).then(function (res) {
if (res['status'] == 'OK') {
$('#validates').val(res['validates']);
} else {
alert('获取验证码失败');
}
});
} else {
return false
}
}
var wait = 60;
function time(btn, login) {
if (login.length === 11) {
if (wait == 0) {
btn.removeAttribute("disabled");
btn.value = "重新获取"
wait = 60;
} else {
btn.setAttribute("disabled", true);
btn.value = "重新获取(" + wait + ")";
wait--;
setTimeout(function () {
time(btn, login)
}, 1000);
}
;
} else {
console.log(login);
return false
}
}
网友评论