在Laravel-Admin的表单联动事件里,从文档可见,系统自带的只有select选框的联动。然而在实际应用中,我们可能还会碰到更多的联动需求,例如通过select选框的onchange事件来变更text框的值等等。。。
当然我们可以通过官方插件列表里的表单联动插件来实现,但是插件目前还是有些不够爽。
对此,我们可以通过自己写js代码来实现功能,通过查看相关源码,可以解析得到如下的代码片段:
Admin::script("$(document).on('change','.onchange字段名',function(data){
//>这里是一个get事件,第二个为传参
$.get('事件请求url',{q:this.value},function(d){
//>这里是回调,所有的联动事件都在这里实现,d为请求url后返回的数据,我用的json格式
document.getElementById('input框名称').value = d.column; //>重新赋值
});
})");
这里只演示了一个字段重新赋值的,更多的操作可以参照其他前端联动的方法自行变动。
仅用作个人笔记记录。欢迎共同讨论。当然,表单联动这个在Laravel-Admin 1.8以后的版本已经直接集成了,无需通过插件了。