空输入字段的JavaScript验证

Eyl*_*yla 82 javascript

问候,我有这个输入字段, <input name="question"/>我想在提交点击提交按钮时调用IsEmpty函数.

我尝试了下面的代码,但没有奏效.有什么建议吗?!

<html>

<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=unicode" />
  <meta content="CoffeeCup HTML Editor (www.coffeecup.com)" name="generator" />
</head>

<body>


  <script language="Javascript">
    function IsEmpty() {

      if (document.form.question.value == "") {
        alert("empty");
      }
      return;
    }
  </script>
  Question: <input name="question" /> <br/>

  <input id="insert" onclick="IsEmpty();" type="submit" value="Add Question" />

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

小智 110

<script type="text/javascript">
  function validateForm() {
    var a = document.forms["Form"]["answer_a"].value;
    var b = document.forms["Form"]["answer_b"].value;
    var c = document.forms["Form"]["answer_c"].value;
    var d = document.forms["Form"]["answer_d"].value;
    if (a == null || a == "", b == null || b == "", c == null || c == "", d == null || d == "") {
      alert("Please Fill All Required Field");
      return false;
    }
  }
</script>

<form method="post" name="Form" onsubmit="return validateForm()" action="">
  <textarea cols="30" rows="2" name="answer_a" id="a"></textarea>
  <textarea cols="30" rows="2" name="answer_b" id="b"></textarea>
  <textarea cols="30" rows="2" name="answer_c" id="c"></textarea>
  <textarea cols="30" rows="2" name="answer_d" id="d"></textarea>
</form>
Run Code Online (Sandbox Code Playgroud)

  • 这被接受实际上是无效的.`if`语句中的逗号只会返回最后一项检查:http://stackoverflow.com/a/5348007/713874 (5认同)
  • 最好解释答案和OP的疑问. (3认同)
  • 'onsubmit ="return validate()"'需要更改.validate不是函数的名称.它应该是'onsubmit ="return validateForm()"' (2认同)

Sar*_*raz 33

请参阅此处的工作示例


您缺少必需的<form>元素.以下是您的代码应该如何:

function IsEmpty() {
  if (document.forms['frm'].question.value === "") {
    alert("empty");
    return false;
  }
  return true;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<form name="frm">
  Question: <input name="question" /> <br />
  <input id="insert" onclick="return IsEmpty();" type="submit" value="Add Question" />
</form>
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法对表单中的所有字段执行此操作? (2认同)

Rok*_*jan 28

输入字段可以有空格,您要防止:

function isEmpty(str) {
    return !str.trim().length;
}
Run Code Online (Sandbox Code Playgroud)

例:

const isEmpty = str => !str.trim().length;

document.getElementById("name").addEventListener("input", function() {
  if( isEmpty(this.value) ) {
    console.log( "NAME is invalid (Empty)" )
  } else {
    console.log( `NAME value is: ${this.value}` );
  }
});
Run Code Online (Sandbox Code Playgroud)
<input id="name" type="text">
Run Code Online (Sandbox Code Playgroud)


Ati*_*riq 16

我想在用户禁用javascript的情况下添加必需的属性:

<input type="text" id="textbox" required/>
Run Code Online (Sandbox Code Playgroud)

它适用于所有现代浏览器.


Jak*_*mun 9

if(document.getElementById("question").value.length == 0)
{
    alert("empty")
}
Run Code Online (Sandbox Code Playgroud)


Raj*_*jat 5

在输入元素中添加一个id"问题",然后尝试:

   if( document.getElementById('question').value === '' ){
      alert('empty');
    }
Run Code Online (Sandbox Code Playgroud)

您当前代码不起作用的原因是因为您没有FORM标记.此外,不推荐使用"name"进行查找,因为它已弃用.

请参阅@Paul Dixon在这篇文章中的答案:<a>锚标签的'name'属性是否过时了?