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

method返回意外错误:textarea加载数据库HTML内容时#cont控制台报错

问题分析与解决方案

先拆解你代码里的几个核心问题,这就是导致#cont报错、方法异常的根源:


1. DOM ID 重复(最直观的错误)

你写了两个<textarea>,但它们的id全是cont:

<textarea name="cont" id="cont"></textarea>
<textarea name="name" id="cont"></textarea>

DOM 规则里ID 必须唯一,第二个对应#name的文本域,得把id改成name:

<textarea name="name" id="name"></textarea>

这也是你觉得#name“正常工作”的假象——其实JS是在操作第一个#cont元素,完全不符合你的预期。


2. 错误使用.html()设置textarea内容

textarea 的内容要通过**值(value)**来操作,jQuery 里正确的方法是.val(),而非.html()。.html()是用来修改元素的innerHTML,虽然偶尔对textarea能生效,但不符合规范,还会引发特殊字符渲染异常。

修正后的JS要把.html()换成.val():

$('#cont').val('<?php echo $cont['0']['desc'];?>');
$('#name').val('<?php echo $cont['0']['name'];?>');

3. PHP 输出未转义,触发JS语法错误

如果你的$cont['0']['desc']或$cont['0']['name']里包含单引号、换行、反斜杠这类特殊字符,直接用单引号包裹输出会破坏JS的字符串结构,导致控制台报错。

解决办法是用json_encode()转义内容,它会自动处理所有特殊字符,生成合法的JS字符串:

$('#cont').val(<?php echo json_encode($cont['0']['desc']);?>);
$('#name').val(<?php echo json_encode($cont['0']['name']);?>);

注意这里不需要额外加单引号,json_encode()已经帮你生成带引号的标准字符串了。


最终修正后的完整代码

<script type="text/javascript">
//<![CDATA[
$('#cont').val(<?php echo json_encode($cont['0']['desc']);?>);
$('#name').val(<?php echo json_encode($cont['0']['name']);?>);
//]]>
</script>
<textarea name="cont" id="cont"></textarea>
<textarea name="name" id="name"></textarea>

这样调整后,控制台错误和方法异常的问题应该就能解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:00:02