javascript - jQuery单击具有ajax回调的按钮不起作用
问题描述
我有一个 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();
});
问题类似,当我点击按钮时输入不会失去焦点,所以工具提示留在页面上
解决方案
您可以尝试解决方法:
(function($){
$(document).ready(function(){
$('button[id*="edit-commerce-coupon-coupon-add"]').on('click', function(){
console.log('test');
});
});
})(jQuery);
还要确保您已正确附加您的 js 文件以形成
$form['#attached']['js'][] = 'pathtomyfile.js';
推荐阅读
- c++ - 将自定义 C++20 范围适配器与标准适配器相结合
- python - 如何使用小的单个图像并在整个窗口中重复它以使用 tkinter GUI 使其成为背景图像?
- javascript - 使用 Formik 和 material-ui stepper 上传文件
- r - 部分适用于用于检查一列中的列值是否存在于另一列中的语句
- javascript - mongoDB - 从一个集合中获取数据并保存到另一个集合
- flutter - Flutter Image Cropper 无法加载资源
- python - 如何按值对两个列表的字典进行排序
- python - LINPROG 区别 MATLAB 和 Python
- python - 如何使用具有多对多关系的复选框来保存多个用户?
- kubernetes - 使用不存在的存储类创建 PersistentVolume 成功