所以我试图阻止某些单词在我网站的文本框中使用。我不断收到控制台错误 Uncaught TypeError: text.search is not a function at HTMLLIElement。
这是我使用的代码:
window.onload=function(){
var banned = ['MMM','XXX'];
document.getElementById('field_1_17').addEventListener('keyup', function(e) {
var text = document.getElementById('field_1_17').value;
for (var x=0;x<banned.length;x++) {
if (text.search(banned[x]) !== -1) {
alert(banned[x]+' is not allowed!');
}
var regExp = new RegExp(banned[x]);
text = text.replace(regExp,'');
}
document.getElementById('field_1_17').value = text;
},false);
}
这是有问题的元素/文本框:
<input name="input_17" id="input_1_17" type="text" value="death" class="medium" maxlength="12" tabindex="5" aria-required="true" aria-invalid="false" data-emoji_font="true" style="font-family: Radnika, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol", Symbola, EmojiSymbols !important;">
最佳答案
我认为你需要更新脚本</p>
<script type="text/javascript">
window.onload=function(){
var banned = ['MMM','XXX'];
document.getElementById('input_1_17').addEventListener('keyup', function(e) {
var text = document.getElementById('input_1_17').value;
for (var x=0;x<banned.length;x++) {
if (text.search(banned[x]) !== -1) {
alert(banned[x]+' is not allowed!');
}
var regExp = new RegExp(banned[x]);
text = text.replace(regExp,'');
}
document.getElementById('input_1_17').value = text;
},false);
}
</script>
因为您的输入标记 ID 是 input_1_17 并且您正在使用 field_1_17,所以更新了此内容。 如果需要,您可以仅更改输入标记 id ,您可以分配 id field_1_17 在这种情况下无需更改脚本中的任何内容
关于javascript - 未捕获的 TypeError : text. 搜索不是 HTMLLIElement 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58165546/