You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel动态Select Box数据显示后立即消失的问题求助

问题原因与解决方法

1. 错误的Select内容更新逻辑

你的代码中先将目标select的内容替换成文本delegation_id,再追加选项,这会破坏select的结构,导致选项无法正常渲染,甚至引发页面异常。

修复代码:
将success回调里的这两行:

div.find('.name_fr').html("delegation_id");
div.find('.name_fr').append(op);

替换为:

div.find('.name_fr').html(op);

直接用生成的选项覆盖select的内容,保证select结构正确。

2. 页面意外刷新(表单自动提交)

如果.state_id所在元素在<form>标签内,部分场景下change事件会触发表单默认提交行为,导致页面刷新,刚加载的选项随即消失。

修复方法:
在change事件处理函数中阻止默认行为:

$(document).on('change','.state_id',function(e){
    // 阻止默认行为,避免表单提交
    e.preventDefault();
    
    var state_id=$(this).val();
    var div=$(this).parent();
    var op="";
    // 后续ajax代码不变...
});

3. 额外检查项

  • 确认.name_fr是目标select元素的正确类名,避免和其他元素混淆
  • 查看浏览器控制台是否有其他报错(比如元素找不到、ajax请求异常),排除潜在问题

修改后的完整Jquery代码:

@section('scripts')
<script type="text/javascript">
    $(document).ready(function(){
        $(document).on('change','.state_id',function(e){
            e.preventDefault();
            var state_id=$(this).val();
            var div=$(this).parent();
            var op="";
            $.ajax({
                type:'get',
                url:'{!!URL::to('finddelegName')!!}',
                data:{'id':state_id},
                success:function(data){
                    console.log('success');
                    console.log(data);
                    console.log(data.length);
                    op+='<option value="0" selected disabled>chose delegation</option>';
                    for(var i=0;i<data.length;i++){
                        op+='<option value="'+data[i].id+'">'+data[i].name_ar+'</option>';
                    }
                    div.find('.name_fr').html(op);
                },
                error:function(){
                }
            });
        });
});
</script>
@endsection

内容的提问来源于stack exchange,提问作者yahya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:35:28