警报未在JS中显示 [英] alert not displaying in JS

查看:103
本文介绍了警报未在JS中显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

警报无法正常工作!我不知道为什么...
我正在尝试评估客户端的表单。我已经尝试过getElementsById,getElementsByName。
我要去哪里错了?
我确定控制流通过validate()
,其中立即显示一个validate方法内的警报语句!

alert is not working as expected! i don't know why... I am trying to evaluate a form on client side. I have tried getElementsById, getElementsByName. Where am i going wrong? I am sure the flow of control goes through validate() an alert statement immediately inside validate method is being displayed!

这是我的代码:

     <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" errorPage="Error.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function validate() {
    var uname = document.getElementById("uname").value;
    var email = document.getElementById("email").value.indexof('@');
    var pass = document.getElementById("pass").value;
    var rpass = document.getElementById("rpass").value;
    submitOK = true;

    if (uname.length == 0) {
      alert("Username cannot be empty")
      submitOK = false;
    }
    if (email == -1) {
      alert("Not a valid email");
      submitOK = false;
    }
    if (pass.length === 0) {
      alert("Password cannot be empty");
      submitOK = false;
    }
    if (pass != rpass) {
      alert("passwords don't match");
      submitOK = false;
    }
    return submitOK;
  }
</script>
<title>Register</title>
</head>
<body>
<h1>Register</h1>
<br />
<form action="RegInt.jsp" method="post" onsubmit="return validate()">
Enter UserName : <input type="text" name="uname" id="uname" value='${ param.uname}'placeholder="Enter Name" ><br/><br/>
Enter Email:     <input type="email" name="email" id = "email" value='${param.email}'placeholder="Enter Email"><br/><br/>
Enter Password:  <input type="password" name="pass" id = "pass" value='${param.pass}'placeholder="Enter password"><br/><br/>
Repeat Password: <input type="password" name="rpass" id = "rpass" value='${param.rpass}'placeholder="Repeat Password"/><br/>
    <br/><br/>
<input type="submit"/>
</form>
<h4>${errorMsg}</h4>

</body>
</html>


推荐答案


  1. 警惕和indexOf!

  2. getElementById为奇数

  3. submitOK = false将SubmitOK设置为true,因为非空字符串是真实的。使用 submitOK = false

  4. 当您问问题时您没有返回SubmitOK

  1. Spelling of alret and indexOf !
  2. getElementById is singular
  3. submitOK="false" sets submitOK to true since a non-empty string is truthy. use submitOK=false
  4. you did not return submitOK when you asked the question

    function validate() {
      var uname = document.getElementById("uname").value;
      var email = document.getElementById("email").value.indexOf('@');
      var pass = document.getElementById("pass").value;
      var rpass = document.getElementById("rpass").value;
      submitOK = true;

      if (uname.length == 0) {
        alert("Username cannot be empty")
        submitOK = false;
      }
      if (email == -1) {
        alert("Not a valid email");
        submitOK = false;
      }
      if (pass.length === 0) {
        alert("Password cannot be empty");
        submitOK = false;
      }
      if (pass != rpass) {
        alert("passwords don't match");
        submitOK = false;
      }
      return submitOK;
    }

<h1>Register</h1>
<br />
<form action="RegInt.jsp" method="post" onsubmit="return validate()">
  Enter UserName :
  <input type="text" name="uname" id="uname" value='${ param.uname}' placeholder="Enter Name">
  <br/>
  <br/>Enter Email:
  <input type="email" name="email" id="email" value='${param.email}' placeholder="Enter Email">
  <br/>
  <br/>Enter Password:
  <input type="password" name="pass" id="pass" value='${param.pass}' placeholder="Enter password">
  <br/>
  <br/>Repeat Password:
  <input type="password" name="rpass" id="rpass" value='${param.rpass}' placeholder="Repeat Password" />
  <br/>
  <br/>
  <br/>
  <input type="submit" />
</form>

这篇关于警报未在JS中显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆