所以我试图阻止某些单词在我的网站上的文本框中使用。我不断收到控制台错误Uncatch TypeError:text.search不是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;">
我认为您需要更新脚本
<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而无需更改脚本中的任何内容