【发布时间】:2021-09-08 03:10:35
【问题描述】:
我正在尝试将 ID="DNTCaptchaInputText-error" 的跨度(请参见图片)作为目标,我希望能够将“此字段为必填项”的内部文本更改为更自定义的错误消息,例如, "请输入安全码"。
到目前为止我已经尝试过:
document.getElementById('DNTCaptchaInputText-error').innerHTML = 'please type out the security
code';
也试过了
document.getElementsByClassName('DNTCaptchaInputText-error')[0].innerHTML = 'please type out
security code.';
到目前为止,这些似乎都不起作用,请问有什么想法吗?
谢谢。
//编辑
代码还是不行
<div class="input-group"><span class="input-group-prepend"><span
class="input-group-text"><i class="fas fa-lock"></i></span></span><input
autocomplete="off" class="text-box form-control input-validation-error"
data-required-msg="none" data-val="true" data-val-required="none"
dir="ltr" id="DNTCaptchaInputText" name="DNTCaptchaInputText"
placeholder="Enter Code" required="required" type="text" value="" aria-
describedby="DNTCaptchaInputText-error" aria-invalid="true"></div>
<span class="text-danger field-validation-error" data-valmsg-
for="DNTCaptchaInputText" data-valmsg-replace="true"><span
id="DNTCaptchaInputText-error" class="">This field is required</span>
</span>
我真的不明白为什么 document.getElementById('DNTCaptchaInputText-error').innerHTML = 'New text here'; 不起作用!一直说不能将innerHTML属性设置为null,我在这里尝试了所有建议的答案。
【问题讨论】:
-
“不起作用”如何?有任何错误信息吗?
-
id
DNTCaptchaInputText-error是该类型的唯一 id 吗?id标签必须特定于 1 个元素。可能是您没有更改正确的元素,您的第一个示例应该可以正常工作 -
要补充以上关于多个
id的观点,还要检查您是否在 DOM 加载之后执行您的JS 代码。 -
我在控制台日志中得到的错误是,“无法设置属性'innerHTML' of null”基本上,我设法更改了输入字段中的占位符,它工作正常:document.getElementsByName('DNTCaptchaInputText' )[0].placeholder = '输入代码';但是更改跨度似乎是一场噩梦,这是我实现的 ReCaptcha,称为 DNTCaptcha,因此跨度是自动添加的,只需使用 JS 定位它,这样我就可以抛出自定义错误消息。
标签: javascript jquery asp.net reactjs angularjs