JSP и JavaScript с формой - PullRequest
       2

JSP и JavaScript с формой

1 голос
/ 27 февраля 2012

У меня есть форма на странице Registivation.jsp:

form name = "users" method = "post" onSubmit = "return checkCorrect ()" action = "Registeration.jsp">

Скрипт checkCorrect записывается в начале страницы, возвращает истину или ложь на основе информации, отправленной в форму (используя getElementById, если это имеет значение), и скрипт определенно работает (работал на html-странице безjsp before)

после формы у меня есть это:

<% if (request.getMethod (). equals ("POST")) {...} </p>

И мне нужно, чтобы часть jsp работала ТОЛЬКО в том случае, если и после успешной отправки формы, но каким-то образом сценарий javascript не вызывается и не работает, а форма всегда отправляется.

Что я делаю не так?

правки:
на моей странице нет перенаправления, функции проверки javascript, формы и части JSP, которая обрабатывает форму после ее отправки,на той же странице.
часть jsp используется для отправки данных из формы в базу данных.
функция:

функция checkCorrect () {
var fullname =document.getElementById ("полное имя"). значение;
...
if (response.length == 0)
{
return true;
}
else
{
alert («Эти проблемы обнаружены в вашей форме: \ n \ n» + ответ);
return false;
}
}

, затем введитеbody и форма, а затем
часть jsp:

<% </p>

if (request.getMethod (). Equals ("POST")) {

String fullname = request.getParameter ("fullname");
и продолжайте ..}%>

Решение:
проверьте часть JavaScript на самом деле хорошие люди, это не такнет компилятора, так что даже крошечная проблема там можетиспортить весь проект.

1 Ответ

2 голосов
/ 27 февраля 2012
<% uname=""+request.getAttribute("username"); %>

Эта переменная получит значение, только когда вы загрузите или обновите свою страницу.

Я полагаю, ваш поток страниц выглядит следующим образом.

Ваша первая страница с формой, и форма отправки будет вызывать функцию javascript как

<form name="users" method="post" onSubmit="returncheckCorrect()" action="Registeration.jsp">

, тогда ваш javascript проверит ваш ответ следующим образом:

<script type="text/javascript">
function returncheckCorrect() {
    var x = document.getElementsByName("userName")
    if (your condition) {
        alert("Redirecting");
        return true;
    } else {
        alert("Not Redirecting");
        return false;
    }
}
// return false; // lol, see why indentation is useful ?
</script>

затем (если (ваше условие == true)) ваш скрипт javaбудет перенаправлять на вторую страницу, где вы хотите получить значение в скриптлете, например

<% uname=""+request.getAttribute("username"); %>

Убедитесь, что ваш код работает таким образом.

Ниже приведен код, который я пробовал как высказал, что работает

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
    function chkme() {
        var x = document.getElementById('textfield');
        if (x.value == 'sarin') {
            alert("success");
        } else {
            alert("failed");
        }
        return true;
    }
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form id="form1" name="form1" method="post" onsubmit="chkme();"
        action="">
        <input type="text" name="textfield" id="textfield" /> <input
            type="text" name="textfield2" id="textfield2" /> <input
            type="submit" name="button" id="button" value="Submit" />
    </form>
    <%
        if (request.getMethod().equals("POST")) {
            String textfield = request.getParameter("textfield");
            String textfield2 = request.getParameter("textfield2");
    %>
    <%=textfield%>
    <br />
    <%=textfield2%>
    <%
        }
    %>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...