使用 java 脚本验证 html 中的文本区域

Validate textarea in html with java script

我试图阻止用户在文本区域中输入和提交单引号 (')。以下是我拥有的,但它不起作用。

    <script>
    function valtxtarea() {
        var val = document.getElementById('textarea').value;

        if ('\''.test(val)) {
            alert('do not add single qoutes to your inputs!');
        }
    }

</script>

<form>
    enter text below
    <textarea>input contents here</textarea>
    <input type="button" onclick="valtxtarea();" value="send">
</form>
var val = document.getElementById('textarea').value;

没有 ID 为 textarea 的 HTML 元素。

做这样的事情:

<textarea id="textarea">input contents here</textarea>

如果出现验证错误,您可能还想阻止表单提交,所以将 return false; 放在 valtxtarea()if 中,并将 return valtxtarea() 放在 onclick 中.

您错过了 id 属性以及正则表达式无效

function valtxtarea() {
  var val = document.getElementById('textarea').value;

  if (/\'/.test(val)) {
    alert('do not add single qoutes to your inputs!');
  }
}
<form>
  enter text below
  <textarea id="textarea"></textarea>
  <input type="button" onclick="valtxtarea();" value="send">
</form>

更好的是,为什么不阻止他们输入呢?

  <form>
  enter text below
  <textarea id='inputText' oninput="valtxtarea();"></textarea>
  <input type="button" value="send">
  </form>

  <script>
  var oldValue = "input contents here";
  document.getElementById('inputText').value = oldValue;
  function valtxtarea() {
    var textArea = document.getElementById('inputText');
    if (textArea.value.match(/.*\'.*/g)) {
        textArea.value = oldValue;
    } else {
      oldValue = textArea.value;
    }
  }
  </script>

有了这个,每次他们输入一个字符时,它都会被检查,如果它包含一个 ',那么它就会将它设置回旧值。您可以轻松地扩展它以包含您不想允许的其他字符。