Java验证在我的Spring Boot中不起作用

时间:2019-05-05 03:30:19

标签: javascript spring-boot

当我尝试执行javascript验证时,但单击“提交”按钮后,它就起作用了

我的Js代码:位于resource / static / js / validate.js内部的validation.js

    function validate(){
var f=document.getElementById("form");

var hasEmailError = validateEmail(f);

if(!hasEmailError)
    return false;
    else
    return true;
    }

    function validateEmail(form){
    var error=document.getElementById("emailError");

    var email=form["email"].value;
    error.innerHTML="";
    var regx = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|
    (".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-
    Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

    if( email==null || email==""){
    error.innerHTML="Input Your Email";
    }

    else if(!email.match(regx)){
    error.innerHTML="Invalid Email";
    }
    if(error.innerHTML.length > 0)
    return false;
    else
    return true;
    }

我的jsp代码:registration.jsp

  <script type="text/javascript" src="/js/validate.js"></script>
</head>
<body>
<form action="regUser" method="post" id="form">

First Name<input type="text" name="user_fname"><br>
Last Name<input type="text" name="user_lname"><br>
Email <input type="text" name="email"><br>
<font id="emailError" style="color: red;">${emailExistError} </font>
Contact No<input type="text" name="contactno"><br>
Password<input type="password" name="user_password"><br>
<input type="submit" onclick="return validate()" value="SUBMIT">
</form>
</body>

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/xxx?autoReconnect=true&useSSL=false
spring.datasource.username=root
spring.datasource.password=pass@1234
spring.jpa.show-sql=true
spring.mvc.view.prefix=/WEB-INF/jsps/
spring.mvc.view.suffix=.jsp
server.servlet.context-path=/hotelmgmt
spring.main.allow-bean-definition-overriding=true
server.port = 8090

请告诉我我在哪里错过了重点?

2 个答案:

答案 0 :(得分:1)

您需要将<script type="text/javascript" src="/js/validate.js"></script>放在封闭的身体标签之前,而不是头部标签上。

将此行放在一行中。

var regx = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

当前代码显示错误"Uncaught SyntaxError: Invalid regular expression: missing /"

我尝试重现您的代码,它有效

  function validate(){
var f=document.getElementById("form");

var hasEmailError = validateEmail(f);

if(!hasEmailError)
    return false;
    else
    return true;
    }

    function validateEmail(form){
    var error=document.getElementById("emailError");

    var email=form["email"].value;
    error.innerHTML="";
    var regx = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

    if( email==null || email==""){
    error.innerHTML="Input Your Email";
    }

    else if(!email.match(regx)){
    error.innerHTML="Invalid Email";
    }
    if(error.innerHTML.length > 0)
    return false;
    else
    return true;
    }
<body>
<form action="regUser" method="post" id="form">

First Name<input type="text" name="user_fname"><br>
Last Name<input type="text" name="user_lname"><br>
Email <input type="text" name="email"><br>
<font id="emailError" style="color: red;"></font>
Contact No<input type="text" name="contactno"><br>
Password<input type="password" name="user_password"><br>
<input type="submit" onclick="return validate()" value="SUBMIT">
</form>
</body>

答案 1 :(得分:0)

我认为首先简化return语句将对您有所帮助。 hasError =!false非常令人困惑。