咨询:提交请求后立即关闭模态框或点击后禁用按钮的实现方法
解决Ajax请求后立即关闭模态框或禁用按钮的问题
你现在的代码里,模态框只有在Ajax请求成功时才会关闭,要实现点击按钮后立即关闭模态框,或者立即禁用按钮,我给你两个实用的方案:
方案一:点击按钮后立即关闭模态框
只需要把关闭模态框的代码从success回调里移出来,放到按钮点击事件的最开头就行——这样不管Ajax请求成功还是失败,模态框都会立刻关闭。修改后的代码如下:
$('button#rejectWithdraw').click(function(e) { // 立即关闭模态框 $('#modelContent').modal('toggle'); $.ajax({ url: $('#rejectUrl').val(), type: "POST", data: {data:text}, success: function (data) { // 这里可以加请求成功后的额外逻辑,比如提示用户操作成功 // alert("拒绝提现成功"); }, error: function (err) { // 请求失败的处理,比如提示用户出错了 // alert("操作失败,请稍后重试"); } }); });
方案二:点击按钮后立即禁用它(防止重复提交)
如果不想立刻关模态框,而是想先禁用按钮避免用户重复点击,可以在点击事件开头先禁用按钮,然后根据请求结果决定是否保持禁用或者恢复:
$('button#rejectWithdraw').click(function(e) { const $btn = $(this); // 立即禁用按钮 $btn.prop('disabled', true); // 可以顺便修改按钮文字提示用户正在处理 $btn.text('处理中...'); $.ajax({ url: $('#rejectUrl').val(), type: "POST", data: {data:text}, success: function (data) { $('#modelContent').modal('toggle'); // 请求成功后可以保持禁用,或者根据需求恢复 // $btn.prop('disabled', false); // $btn.text('拒绝提现'); }, error: function (err) { // 请求失败后恢复按钮,让用户可以重试 $btn.prop('disabled', false); $btn.text('拒绝提现'); // alert("操作失败,请稍后重试"); } }); });
这样两种方案都能满足你的需求,你可以根据实际业务场景选择~
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

