【发布时间】:2018-08-09 08:49:15
【问题描述】:
我有一个 Drupal 网站,我创建了一个带有 ajax 回调按钮的表单,回调工作正常,但现在我想在使用单击提交按钮时抛出一个小 javascript 函数。
我不想为这个小功能创建一个单独的文件来与drupal一起使用,所以我尝试使用jquery click元素:
$(document).on('click', '#commerce-checkout-coupon-ajax-wrapper button', function(){
console.log("test");
});
或
$('#commerce-checkout-coupon-ajax-wrapper button').on('click', function(){
console.log("test");
});
但这不起作用,日志没有被触发。所有其他事件(悬停,鼠标输入等)都可以正常工作,但是单击它不起作用,按钮启动对他的 drupal 函数的 ajax 调用,但它没有启动我的 javascript 函数。
我能做什么?我想做的事情是当我们点击按钮时从屏幕上删除一些东西。
编辑:这是表单的html(由drupal生成)
<div id="edit-commerce-coupon--2" class="form-wrapper">
<div class="form-item form-item-commerce-coupon-coupon-code form-type-textfield form-group">
<label class="control-label" for="edit-commerce-coupon-coupon-code--2">Code Promo</label>
<input class="form-control form-text" title="" data-toggle="tooltip" type="text" id="edit-commerce-coupon-coupon-code--2" name="commerce_coupon[coupon_code]" value="" size="60" maxlength="128" data-original-title="Saisir le code de votre coupon ici.">
</div>
<button type="submit" id="edit-commerce-coupon-coupon-add--2" name="coupon_add" value="Ajouter" class="btn btn-success form-submit icon-before ajax-processed"><span class="icon glyphicon glyphicon-plus" aria-hidden="true">
</span> Ajouter</button>
编辑:
我也尝试了另一种可行的方法(我认为),它与 focusout :
$('#commerce-checkout-coupon-ajax-wrapper .form-control.form-text').focusout(function (e) {
console.log("test");
$('.tooltip').remove();
});
问题类似,当我点击按钮时输入没有失去焦点,所以工具提示停留在页面上
【问题讨论】:
-
可以分享html示例吗
-
我使用 html 表单编辑我的帖子
-
添加了 [drupal],因为它可能是一个框架问题。
ajax callback会自动调用event.stopPropagation()吗? -
我不知道,但是 ajax 回调将表单替换为新表单(与另一行相同)也许我的问题可能来自那个?
-
@Jessy 在共享标记中没有具有所述 ID 的元素,您可以检查元素并与 ID 为
commerce-checkout-coupon-ajax-wrapper的元素共享标记
标签: javascript jquery ajax drupal