角色7传4参数其他传3,$.ajax中if条件传参遇语法错误求解决
嘿,这个语法错误的原因很明确——你不能直接在$.ajax的配置对象(就是{}包裹的内容)里塞进if/else语句!对象字面量只能包含键值对,流程控制语句是不允许出现在这个位置的。下面给你两种靠谱的解决办法:
方法1:提前定义data变量(可读性最佳)
先根据角色编号判断,把要传递的参数提前组装好,再传入ajax配置,这种方式后续扩展逻辑也更方便:
// 先根据role组装对应的参数对象 let ajaxData; if (role == 7) { ajaxData = { 'ids': join_selected_values, 'role': role, 'prices': selected_price, 'currency': selected_currency }; } else { ajaxData = { 'ids': join_selected_values, 'role': role, 'comment': your_comment_variable // 这里替换成你实际的comment变量 }; } // 发起ajax请求 $.ajax({ url: 'bulkUpdate', type: 'get', headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: ajaxData // 直接用提前组装好的参数 });
方法2:使用三元表达式(更简洁)
如果你的逻辑比较简单,也可以直接在data字段里用三元表达式返回不同的参数对象:
$.ajax({ url: 'bulkUpdate', type: 'get', headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: role == 7 ? { 'ids': join_selected_values, 'role': role, 'prices': selected_price, 'currency': selected_currency } : { 'ids': join_selected_values, 'role': role, 'comment': your_comment_variable // 替换为实际的comment变量 } });
额外提醒:如果你传递的参数比较复杂(比如包含特殊字符、大数组),get请求可能会有长度限制,换成post请求会更稳妥,只需要把type改成'post'即可。
内容的提问来源于stack exchange,提问作者user3386779
相关产品推荐
相关产品推荐

