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

jQuery实现句子首字母大写功能时输入内容被错误替换如何解决

问题原因

  • 变量取值时机错误:title、sentenceCaseTitle两个变量在脚本初始化阶段就执行取值,此时输入框无用户输入内容,所以取值永远是空字符串
  • 事件绑定缺失:没有给输入框绑定用户操作对应的触发事件,转换逻辑无法在用户输入、粘贴时自动执行
  • 逻辑顺序错误:sentencecase函数中先触发change paste事件再赋值的逻辑颠倒,还会触发事件死循环

修复后代码

function capitalizeFirstLetter(string) {
  // 空值直接返回避免调用方法报错
  if (!string) return ''
  return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase()
}

// 给输入框绑定所有内容变更场景对应的事件
$('#essay-title').on('input paste change', function() {
  // 每次触发事件时实时获取输入框最新值
  const currentValue = $(this).val()
  const convertedValue = capitalizeFirstLetter(currentValue)
  // 比对转换前后的值,只有不一致时才赋值,避免重复触发input事件导致死循环
  if (currentValue !== convertedValue) {
    $(this).val(convertedValue)
  }
})

效果说明

  • 覆盖手动输入、粘贴、拖拽替换等所有输入框内容变更场景
  • 实时转换不会再出现返回空文本的问题
  • 增加空值校验逻辑,避免空输入时调用字符串方法报错
  • 自动将除首字母外的其余字符统一转为小写,符合句子首字母大写的常规规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:54:02