提示js方法未定义,但是确实<textarea>标签未闭合。
1、问题现象。
Uncaught ReferenceError: showOtherDismantleFn is not defined
但是这个方法,在代码中明明存在。
#if($!{isNewEnergy})#if($!{batteryName} == '宁德时代')<button class="btn btn-info btn-xs" onclick="showNingDismantleFn()">电池包拆修信息</button>#else<button class="btn btn-info btn-xs" onclick="showOtherDismantleFn()">申请电池包原厂拆修</button>#end
#end
<button class="btn btn-info btn-xs" onclick="alert(1)">申请电池包原厂拆修</button>/*** 非宁德,显示电池包拆修信息*/
function showOtherDismantleFn(){console.log(1);// showModal("otherDismantleModal", {}, null, function (){// getOtherDismantleData();// });
}
纳闷,奇怪了。
2、解决步骤
恢复全部修改的代码,一点点尝试。
也没加什么,也就是一个弹框而已。
<div class="modal fade in" id="otherDismantleModal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static"><div class="modal-dialog modal-lg"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h4 class="modal-title">非宁德-申请电池包原厂拆修</h4></div><div class="modal-body"><div class="row"><div class="col-md-12" ><form id="otherDismantleForm" enctype="multipart/form-data"><input name="infoId" hidden><!--基本信息--><div class="panel panel-default"><div class="panel-heading">基本信息</div><div class="panel-body"><div class="form-group"><div class="form-inline" ><label class="col-sm-2 control-label"> 状态</label><div class="col-sm-4"><input name = "statusName" class="form-control" readonly/>   </div><label class="col-sm-2 control-label"> 申请人</label><div class="col-sm-4"><input name="operatorName" class="form-control" readonly/>   </div></div><div class="form-inline" ><label class="col-sm-2 control-label"> 通话证明截图</label><div class="col-sm-10"><input name="callImg" class="form-control" readonly/>   </div></div><div class="form-inline" ><label class="col-sm-2 control-label"> 维修记录图片证明</label><div class="col-sm-10"><input name="batteryMaintenanceCertificate" class="form-control" readonly/>   </div></div><div class="form-inline" ><label class="col-sm-2 control-label"> 备注</label><div class="col-sm-10"><textarea name="remark" class="form-control"/>   </div></div><div class="form-inline" ><div class="col-sm-6"><input class="btn btn-primary btn-sm" type="button" onclick="otherDismantleSubmit(2)" value="同意"/><input class="btn btn-default btn-sm" type="button" onclick="otherDismantleSubmit(3)" value="拒绝"/></div></div></div></div></div><!--录音列表--><div class="panel panel-default"><div class="panel-heading">录音列表</div><div class="panel-body"><table class='table table-bordered'><thead><tr><th>时长</th><th>文件名</th><th>操作</th></thead><tbody id='otherDismantleTapeList'></tbody></table></div></div><!--提交记录--><div class="panel panel-default"><div class="panel-heading">提交记录</div><div class="panel-body"><table class='table table-bordered'><thead><tr><th>状态</th><th>操作时间</th><th>操作人</th></thead><tbody id='otherDismantleActionList'></tbody></table></div></div></form></div></div></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal" >关闭</button></div></div></div>
</div>
一点点恢复,直到这段代码。
<div class="form-inline form-inline-my-top" style="display: ruby;" ><label class="col-sm-2 control-label"> 备注</label><div class="col-sm-10"><textarea name="remark" class="textarea-css" style="width: 80%;"/>   </div>
</div>
去掉就好使(可以找到方法),加上就报错(找不到方法)。
奇怪。
调整为这样
<div class="form-inline form-inline-my-top" style="display: ruby;" ><label class="col-sm-2 control-label"> 备注</label><div class="col-sm-10"><textarea name="remark" class="textarea-css" style="width: 80%;"></textarea>   </div>
</div>
正常了,为什么会影响到方法未定义,真是很奇怪。
3、问题反思
我尝试问kimi,一直没有回答的点上。百度查资料,也是无结果。只能笨办法,一点点尝试。有结论后,我试着去问问ai,为什么会这样。
你猜怎么着,有结果反问他,他也觉得很奇怪。
从你提到的错误信息来看,
Uncaught ReferenceError: showOtherDismantleFn is not defined
是一个 JavaScript 错误,表明浏览器在尝试调用一个名为showOtherDismantleFn
的函数时,没有找到这个函数的定义。这个错误与<textarea>
标签是否闭合没有直接关系。
但是事实,确实是这么个情况。问题是解决了,但是值得思考🤔