页面加载时触发select的change事件无效,求解决方案
问题根源
你在window.load事件里先执行了$('select[name="order_id"]').change()触发事件,但此时还没给这个select绑定change事件的处理函数——处理函数是在触发语句之后才定义的,所以触发操作自然不会有任何响应。
修复方法
调整代码顺序,先绑定事件处理函数,再触发change事件:
window.addEventListener("load", function (e) { <?php if ($logged): ?> // 先绑定change事件逻辑 $('select[name="order_id"]').change(function(){ var order_id = $(this).val(); isSelectedOrder = true; $.ajax({ url: 'index.php?route=return/getProductsByOrderId', data: {order_id:order_id}, dataType: 'json', type: 'POST', beforeSend: function(){ // 你的前置处理代码 } // 记得补全AJAX的success、error等回调逻辑 }); }); // 再触发change事件 $('select[name="order_id"]').change(); <?php endif; ?> });
额外检查点
- 确认jQuery已经在这段代码之前加载完成,否则
$会报错,导致整个逻辑失效 - 验证
$logged变量是否正确输出为true,确保登录状态下这段代码才会执行 - 补全AJAX请求的必要回调(比如success),避免请求完成后没有后续处理
内容的提问来源于stack exchange,提问作者bobi
相关产品推荐
相关产品推荐

