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

jQuery复选框选中填充textarea功能失效问题求解

问题根源

操作textarea时错误使用了.text()方法。
textarea是表单输入类元素,用户可见、可编辑的内容由其value属性控制,并非元素内部的文本节点:

  • 页面初始加载未发生用户交互时,.text()修改的内部文本节点会被当作默认内容展示,表面看功能正常
  • 一旦用户对textarea做过输入、删除这类手动操作,浏览器会优先维护元素的value状态,此时再用.text()修改内部文本节点,不会同步更新页面上的可见内容,就会出现勾选复选框后无法填充预设值的问题。
修复代码

将所有针对textarea的.text()调用替换为.val()方法即可,优化后的完整代码:

$('#checkbox_a').change(function(){
    const $textArea = $("#textarea_b");
    // 先清空内容
    $textArea.val("");
    // 复选框选中时填充预设值
    if ($(this).is(':checked')) { 
        $textArea.val("Yes"); 
    }
});

代码里额外做了小优化:用$(this)直接指代当前触发change事件的复选框,缓存textarea的jQuery对象,避免重复查询DOM。

注意:所有可交互的表单元素(input、textarea、select),读写用户可见的输入值时都要使用.val()方法,不要用.text()或.html(),否则都会出现交互后赋值不生效的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:27:41