【问题标题】:Validate textarea in html with java script使用 javascript 验证 html 中的 textarea
【发布时间】:2016-01-29 12:38:12
【问题描述】:

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

    <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>

【问题讨论】:

标签: javascript html input textarea


【解决方案1】:

您错过了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>

【讨论】:

  • 如何添加其他字符,如 ),(,%。如果有教程链接就可以了。
  • 你需要检查正则表达式教程
【解决方案2】:

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

  <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>

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

【讨论】:

    【解决方案3】:
    var val = document.getElementById('textarea').value;
    

    没有 ID 为 textarea 的 HTML 元素。

    做这样的事情:

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

    如果出现验证错误,您可能还想阻止表单提交,因此将return false; 放入valtxtarea() 中,并将return valtxtarea() 放入onclick 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多