繁体   English   中英

基本的JavaScript表单验证

[英]basic JavaScript form validation

我正在测试,习惯了表格。 我试图让JavaScript检查的值,如果未填写,则在它旁边显示一条小消息。足够简单了吧?

    <script>
        function ValidateForm() {
        var x = document.forms["Form"]["fName"].value;

        If (x==null || x=="") { 
        document.getElementById("FN").innerHTML = "This field must be filled in"; }

        }
    </script>
<body>
        <form name="Form" onload="ValidateForm()">
        First Name: <input type="text" name="fName"> <p id="FN"></p>
        Last Name: <input type="text" name="sName"> <p id="SN"></p>

        </form>

</body>

不幸的是,参数“ FN”和“ SN”在加载时仍然为空。 我知道这不是实际的事情,因为验证不会刷新,并且仅在字段绑定为空时才在onload上运行,但是稍后我将添加废话,因为我已经知道如何使用。

我该如何工作?

可能是因为您将if中的字母“ I”大写了。

 If (x==null || x=="") {

应该

 if (x==null || x=="") {

只需使用必填属性:

<form name="Form">
  First Name: <input type="text" name="fName" required> <p id="FN"></p>
  Last Name: <input type="text" name="sName" required> <p id="SN"></p>
</form>

http://html5doctor.com/html5-forms-introduction-and-new-attributes/#required

聪明地工作,不费力;)

由于这没有用...

<html>
  <head>
    <script>
        function ValidateForm() {
          var x = document.forms["Form"]["fName"].value;

          if (x === null || x === "") { 
            document.getElementById("FN").innerHTML = "This field must be filled in"; }
        }
      </script>
  </head>
  <body onload="ValidateForm()">
    <form name="Form">
      First Name: <input type="text" name="fName"> <p id="FN"></p>
      Last Name: <input type="text" name="sName"> <p id="SN"></p>
    </form>
  </body>
</html>

第一个问题是一个简单的错误, If应该是if

if (x==null || x=="") { 

下一个问题是<form>标记不支持onload事件,因此该功能将无法运行。 而是在加载DOM或<form>之后执行此操作:

<form name="Form">
  First Name: <input type="text" name="fName"> <p id="FN"></p>
  Last Name: <input type="text" name="sName"> <p id="SN"></p>
</form>
<script>ValidateForm();</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM