Dusan Stankovic
Dusan Stankovic

Reputation: 11

Javascript onsubmit() function not doing anything

I have a problem with Javascript functions. My function won't work, I called it in a form with the onsubmit() call but nothing happens.

$(document).ready(function(){
	window.provera = function(){
		nizError = new Array();

		var ime = $("#imeReg").val();
 		var reIme = /^[A-Z][a-z]{2,9}$/;

 		var prezime = $("#prezimeReg").val();
 		var rePrezime = /^[A-Z][a-z]{2,14}(\s[A-Z][a-z]{2,14})*$/;

 		var username = $("#usernameReg").val();
 		var reUsername = /^([A-Za-z]+[0-9]|[0-9]+[A-Za-z])[A-Za-z0-9]*$/;

 		var email = $("#emailReg").val();
		var reEmail =/^[\w]+[\.\_\w]*\@[\w]+([\.][\w]+)+$/;

 		var password = $("#passwordReg").val();
 		var rePassword = /^[\S]{5,50}$/;

		if(!reIme.test(ime)){
			nizError.push('Pogresno ste uneli ime');
		}else if(ime = ""){
			nizError.push('Ime je obavezno da se unese');
		}

		if(!rePrezime.test(prezime)){
			nizError.push('Pogresno ste uneli prezime');
		}else if(prezime = ""){
			nizError.push('Prezime je obavezno da se unese');
		}

		if(!reUsername.test(username)){
			nizError.push('Pogresno ste uneli username');
		}else if(username = ""){
			nizError.push('Username je obavezno da se unese');
		}

		if(!reEmail.test(email)){
			nizError.push('email');
		}else if(email = ""){
			nizError.push('Email je obavezno da se unese');
		}

		if(!rePassword.test(password)){
			nizError.push('password');
		}else if(password = ""){
			nizError.push('Password je obavezno da se unese');
		}

		var ispis = "";

		if(nizError.length > 0){
			for(var i = 0; i < nizError.length; i++){
				ispis+= "<p>"+ nizError[i] +"</p>";
			}
			$("#result").html(ispis);
			return false;
		}
		return true;
	}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="tableLogin">
			<form action="#" method="post" onsubmit="provera()">
				<tr>
					<td>
						<label>Ime</label>
					</td>
					<td>
						<input type="text" id="imeReg" name="imeReg" class="typeText"/>
					</td>
				</tr>
				<tr>
					<td>
						<label>Prezime</label>
					</td>
					<td>
						<input type="text" id="prezimeReg" name="prezimeReg" class="typeText"/>
					</td>
				</tr>
				<tr>
					<td>
						<label>Username</label>
					</td>
					<td>
						<input type="text" id="usernameReg" name="usernameReg" class="typeText"/>
					</td>
				</tr>
				<tr>
					<td>
						<label>E-mail</label>
					</td>
					<td>
						<input type="text" id="emailReg" name="emailReg" class="typeText"/>
					</td>
				</tr>
				<tr>
					<td>
						<label>Password</label>
					</td>
					<td>
						<input type="password" id="passwordReg" name="passwordReg" class="typeText"/>
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<input type="submit" value="Registruj se" id="btnSubReg" name="btnSubReg" class="buttonSub"/>
					</td>
				</tr>
			</form>
		</table>

When I leave # on action attribute nothing happens, but when I try to put some page like admin.php it goes to that page and again I can't validate my form.

I'm working on a website for my studies and I need to validate a form on the client side so if everything is okay it goes on to ther server side where I can again validate it with php and send to the database.

Upvotes: 1

Views: 124

Answers (2)

Ali Haider Warraich
Ali Haider Warraich

Reputation: 41

You are not calling the OnSubmit() function <td colspan="2"> <input type="submit" value="Registruj se" id="btnSubReg" name="btnSubReg" class="buttonSub" onsubmit="return upload(this)"/> </td>

Upvotes: 0

Ilijanovic
Ilijanovic

Reputation: 14904

Instead of this:

   <input type="submit" value="Registruj se" 
     id="btnSubReg" name="btnSubReg" 
     class="buttonSub"/>

Use this:

    <input type="button" value="Registruj se" 
   id="btnSubReg" onclick="provera()" name="btnSubReg" 
    class="buttonSub"/>

And in your javascript add at the end if everything is valid this:

  document.getElementById("myForm").submit();

And add in "action" your php file path.

Upvotes: 1

Related Questions