onclick() nie wykonuje funkcji z pliku js

0

Witam
Oto mój jsp(czyli "generator" html")

 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New Account</title>
<link href="resources/css/register.css" rel="stylesheet">
<link href="resources/css/form.css" rel="stylesheet">
<script src="resources/javascript/register.js" type="text/javascript"></script>
</head>
<body>
	<form name="register" method="post">
	<fieldset>
		<div class="inputlabelpair">
			<label for="username">username</label>
			<input id="username" type="text" name="username">
		</div>
		<div class="inputlabelpair">
			<label for="password">password</label>
			<input id="password" type="password" name="password">
		</div>
		<div class="inputlabelpair">
			<label for="password">repeat password</label>
			<input id="confirm_password" type="password" name="password2">
		</div>
		<div class="inputlabelpair">
			<label for="email">email</label>
			<input id="email "type="email" name="email">
		</div>
		
	</fieldset>
	</form>
	<div >
			<input class="centralbutton"  type="button" id="registerSubmit" value="Sign Up" name="Sign Up" onclick="submit();" >
	</div>
</body>
</html>

A to mój javascript:

 
var username;
var password;
var password2;
var email;

validation(){
	var validation="";
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	username=document.getElementById("username").innerHTML;
	if(username.length<4 || username.length>30){
		validation+="Username lenght should be greater than 4 and lower than 30 ";
	}
	password=username=document.getElementById("password").innerHTML;
	if(password.length<4 || password.length>30){
		validation+=" Pasword lenght should be greater than 4 and lower than 30 ";
	}
	password2=username=document.getElementById("confirm_password").innerHTML;
	if(password!=password){
		validation+=" Incorrect password repeat ";
	}
	email=documnet.getElementById("email").innerHTML;
	if(!filter.test(email)){
		validation+=" Incorrect email";
	}
	return validation;
}

submit(){
	alert('hello!');
	if(validation==""|| validation==null){
		document.forms["register"].action("submitRegister");	
	}
	else{
		alert(validation);
	}
}

Niestety gdy naciskam na przycisk nic nie działa (w tym nawet prosty alert). Przy samym onclick="alert();" alert się uruchomił.
Proszę o podpowiedź czemu to nie działa

1

Zacznij od sprawdzenia konsoli błędów.

0

Odpaliłem konsolę w firefoxie i dostalem:

ReferenceError: submit is not defined

dodanie znacznika <code> - @furious programming

1

Dodaj function przed submit() i validation() aby poprawnie zadeklarować te funkcje.

0

Dzięki,zadziałało :D

1

Oczywiście to nie jedyny problem w tym kodzie ;)
Te najbardziej rzucające się w oczy:

  • do wartości pól formularza odwołuj się przez .value (zamiast .innerHTML),
  • validation występuje jako funkcja i jako zmienna (deklaracja, zmienna lokalna, użycie w submit()) - warto by tu zrobić porządek,
  • nie wiem też co robi document.forms["register"].action("submitRegister"); ale raczej nie wysyła formularza.
0

Już wszystko poprawiłem ;)
Jak na razie to się skupiam ja javie ee i bardziej serwerowej stronie i niezbyt dokładnie podszedłem do javascript ale teraz wszystko już działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1