Gremlin92
@Gremlin92
Ленивый и безъинициативный

Почему происходит submit?

Страничка:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Create User</title>
<link rel="stylesheet" href="create.css">
<script type="text/javascript" src="create.js"></script>
</head>
<body>
<h1>Create Account</h1>
<p id="message" >Enter your information</p>
<div id="CenterBlock">
<form method="post">
<label class="labeler">NickName</label><br>
<input class="inputer" name="nickname"/><br><br>
<label class="labeler">Password</label><br>
<input class="inputer" name="password" type="password" /><br><br>
<label class="labeler">Email</label><br>
<input class="inputer" id="email" name="email" /><br><br>
<input class="button" type="submit" value="Save" onsubmit="return ValidMail()" />
</form>
</div>
</body>
</html>

create.js:
function ValidMail() {
    var re = /^[\w-\.]+@[\w-]+\.[a-z]{2,4}$/i;
    var myMail = document.getElementById('email').value;
    var valid = re.test(myMail);
    if (valid) output = 'Адрес эл. почты введен правильно!';
    else output = 'Адрес электронной почты введен неправильно!';
    document.getElementById('message').innerHTML = output;
    return valid;
}

Происходит запись в бд пустого юзверя и перенаправление на главную страницу при вводе пустых значений
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author User
 */
@WebServlet("/create")
public class CreateServlet extends HttpServlet{
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        getServletContext().getRequestDispatcher("/create.jsp").forward(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
        try {
            String nickname = request.getParameter("nickname");
            String  email = request.getParameter("email");
            String  password = request.getParameter("password");
            Users users = new Users(nickname,email, password);
            UsersDB.insert(users);
            response.sendRedirect(/*request.getContextPath()+*/"/index.html");
        }
        catch(Exception ex) {
            getServletContext().getRequestDispatcher("/create.jsp").forward(request, response); 
        }
    }
}
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
Zraza
@Zraza
Помог ответ? Отметь решением!
Событие submit возникает не на кнопке, а на форме
Корректно так:
<form method="post" onsubmit="return ValidMail()">
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ВДком Самара
от 100 000 ₽
Crystal Service Integration Санкт-Петербург
от 100 000 до 200 000 ₽
Gaskar Group Москва
от 100 000 ₽
17 февр. 2020, в 19:40
500 руб./за проект
17 февр. 2020, в 19:36
5000 руб./за проект
17 февр. 2020, в 19:27
200 руб./в час