Reputation: 11
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
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
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