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

Laravel表单占位符不显示及错误信息放置问题咨询

问题解答

问题1:创建模式下占位符无法显示的解决方法

你当前的value表达式里,{{old('firstname')}}后面跟着一个空格——哪怕没有old值且$user不存在,input的value会被设置成一个空格,浏览器会判定输入框已有内容,所以占位符不会显示。

修正方式:把value属性改成Laravel的合并写法,彻底避免多余空格:

value="{{ old('firstname', $user->firstname ?? '') }}"
  • 创建模式下:$user不存在、old('firstname')为空,value会是空字符串,占位符正常显示
  • 编辑模式下:优先用验证失败后的old值回显,没有old值则加载$user->firstname
  • 验证失败时:old值自动填充,不影响正常使用

问题2:错误信息的放置位置

错误信息要放在input-group容器的外面,用Bootstrap的invalid-feedback类包裹,不需要额外把input-group和错误信息套在一个div里(如果要对齐布局,可以给错误信息加上和输入框一致的列类)。

完整修正后的代码:

<div class="input-group col-sm-6 ml-sm-n2">
    <div class="input-group-append">
        <div class="input-group-text border-right-0 rounded-left"
             style="border-color:#006600;">
            <span class="text-darkgreen fas fa-address-card"></span>
        </div>
    </div>
    <input type="text"
           style="border-color:#006600;"
           class="form-control @error('firstname') is-invalid @enderror"
           id="firstname"
           name="firstname"
           value="{{ old('firstname', $user->firstname ?? '') }}"
           placeholder="Prénom">
</div>
@error('firstname')
    <div class="invalid-feedback d-block ml-sm-n2 col-sm-6">
        {{ $message }}
    </div>
@enderror

给invalid-feedback加d-block是保证错误信息正常显示(默认仅在input带is-invalid类时触发),加上ml-sm-n2 col-sm-6是让错误信息和输入框对齐,保持布局统一。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:30:14