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

Blade模板输入框placeholder仅在删除输入内容后才显示问题排查

问题根因

你代码中input标签的value属性存在多余前置空格:

value=" {{ request()->get('s') }}"

双引号和Blade输出大括号之间的空格会被直接渲染到HTML中,就算request()->get('s')返回空值,最终输入框的value属性值也会是一个空格,并非空字符串。浏览器会认为输入框已经有内容,因此不会触发placeholder显示。当你手动清空输入框内容时,会把这个默认的空格也删掉,value变为真正的空值,placeholder就正常显示了。

修复方案
  • 直接删除value属性中双引号与大括号之间的空格即可:
    <input placeholder="place" type="text" id="s" name="s" value="{{ request()->get('s') }}" class="mb-2 w-full h-full bg-white bg-opacity-95 
    rounded focus:ring-2 border border-gray-300 focus:border-indigo-500 
    text-base outline-none text-gray-700 py-1 px-3 leading-8">
    
  • 更规范的Blade写法可以搭配old()函数保留表单提交后的历史输入,避免跳转回页面时输入内容丢失:
    value="{{ old('s', request()->get('s')) }}"
    
  • 如果需要过滤用户输入前后的多余空格,可以加上trim()处理:
    value="{{ trim(request()->get('s', '')) }}"
    

修复完成后刷新页面,右键查看页面源代码确认input的value属性在无搜索参数时为空,即可验证问题已解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:04