Проверка Javascript не работает в моей загрузке Spring - PullRequest
0 голосов
/ 05 мая 2019

Как я пытаюсь сделать проверку JavaScript, но это не работает при нажатии кнопки отправки

мой код Js: validation.js, который находится внутри ресурса / static / js / validate.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 ]

1 голос
/ 05 мая 2019

Вам нужно поставить <script type="text/javascript" src="/js/validate.js"></script> перед закрывающим тегом тела вместо тега head.

Поместите эту строку в одну строку.

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>
0 голосов
/ 05 мая 2019

Я думаю, вам было бы полезно сначала упростить операторы возврата. HasError =! False очень сбивает с толку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...