Jump to content



Java...scripting


theoamd

Recommended Posts

Για να μην τα πολυλογώ έχω τον παρακάτω κώδικα

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />
<title>Form Validation</title>

<script type="text/javascript">
function formValidator(){
err="";
var name=document.getElementById('name');
if(nameValidator(name,"Please enter a valid name")){
//return true;
}

var address=document.getElementById('address');
if(addrValidator(address,"Please enter a valid address")){
//return true;
}

var zip=document.getElementById('zip');
if(zipValidator(zip,"Please enter a valid Zip Code")){
//return true;
}

var user=document.getElementById('user');
if(userValidator(user,"Not valid username")){
//return true;
}

var email=document.getElementById('email');
if(emailValidator(email,"Please enter a valid email address")){
//return true;
}

return false;
}

function nameValidator(name, nmsg)
{
var nameexp= /^[a-zA-Z]{6,15}$/;
if(name.value.match(nameexp)){
return true;}
else{
alert(nmsg);
name.select();
return false;
}
}

function addrValidator(address,amsg)
{
var addressexp= /^[a-zA-Z]{3,12} [a-zA-Z]{3,15} [0-9]{1,3}$/;
if (address.value.match(addressexp)){
return true;
}
else{
alert(amsg);
address.select();
return false;}
}

function zipValidator(zip,zmsg)
{
var zipexp= /^[0-9]{1,5}$/;
if (zip.value.match(zipexp)){
return true;
}
else{
alert(zmsg);
zip.select();
return false;}
}

function userValidator(user,umsg)
{
var userexp= /^[a-zA-Z]{6,8}$/;
if (user.value.match(userexp)){
return true;
}
else{
alert(umsg);
user.select();
return false;}
}


function emailValidator(email, msg)
{
var emailexp= /^[a-zA-z0-9\.\+\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,4}$/;

if (email.value.match(emailexp)){
return true;
}else{
alert(msg);
email.select();
return false;

}
}




</script>
<h1>2η άσκηση</h2>
<form method="post" action="get.php">
First name: <input type="text" id='name'>
<br/>Address: <input type="text" id='address'>
</br>Zip Code: <input type="text" id='zip'>
<br/>
State:
<select name="state" value="Please choose">
<option value="000" selected="selected">Please choose:</option>
<option value="6">Greece</option>
<option value="5">Germany</option>
<option value="4">Greenland</option>
</select>
<br/>Username(6-8 characters):<input type="text" id='user'>
<br/>Email:<input type="text" id='email'>
<br/>
<input type='button' onclick="return formValidator()" value="Check form"/>

</form>

</p>

</body>
</html>

και η ερώτησή μου είναι γιατί βάζοντας έγκυρα στοιχεία δεν με ανακατευθύνει στο get.php(πρόκειται για ένα απλό αρχείο php που εμφανίζει μήνυμα επιτυχούς εισαγωγής στοιχείων)

Link to comment
Share on other sites

και η ερώτησή μου είναι γιατί βάζοντας έγκυρα στοιχεία δεν με ανακατευθύνει στο get.php(πρόκειται για ένα απλό αρχείο php που εμφανίζει μήνυμα επιτυχούς εισαγωγής στοιχείων)

Με μια γρήγορη ματιά, νομίζω ότι δε γυρνάς πουθενά true, οπότε το submit δεν εκτελείται ποτέ.

Edit:

Είχα κι ένα πρόχειρο κοντά μου... Οι έλεγχοι γίνονται με jquery.


function formCheck() {
var formOK = true;

if ($("#my_text_field").val() == "") {
$.StErrorPopup.buildPrompt($("#my_text_field"), "Please enter a value.")
if (formOK) { scrollToElement("#my_text_field"); }
formOK = false;
}
return formOK;
}

Link to comment
Share on other sites

Τελικά επρόκειτο για λογικό λάθος.

Στη formValidator, έπειτα από κάθε έλεγχο πρέπει να επιστρέφω false, οπότε αν χτυπήσει κάπου, να πεταχτεί το μήνυμα και να μην πάει παρακάτω και πριν το τέλος της συνάρτησης, έπρεπε να επιστρέψω true, καθώε επρόκειτο για σημείο στο οποίο θα φτάσει ΜΟΝΟ αν όλοι οι παραπάνω έλεγχοι είναι αληθείς.

9enx anyway παίδες ( [MENTION=173]Wizard![/MENTION] είμαι σε πολύ πρόιμο στάδιο για jqueries).

Next step ==> Javascript + Ajax :getlost:

Link to comment
Share on other sites

Το νέο ερώτημα λοιπόν είναι το ακόλουθο :

Έχω μια εφαρμογή αναζήτησης κάποιων διαθέσιμων βιβλίων(τα οποία τα τραβάω απο μια ΒΔ), όπου υπάρχει ένα txt hint το οποίο κατά την πληκτρολόγηση στην αναζήτηση εμφανίζει τα αντίστοιχα υπάρχοντα στη βάση.

Για ένα πεδίο παίζει κανονικά(πχ για τίτλο), όμως αν προσθέσω και συγγραφέα(δηλαδή αναζήτηση με ajax(για το txt hint) και κάνω παράλληλη αναζήτηση το txt hint δε δουλεύει σωστα,δηλαδή υπάρχει περίπτωση να βγάλει 2 φορές το ίδιο βιβλίο.

Πως θα διορθωθεί αυτό?

Link to comment
Share on other sites

Ουσιαστικά παίρνω μέσω js(και κάνοντας χρήση της onkeyup()) το περιεχόμενο του field(πχ τον τίτλο ενός βιβλίου) και ελέγχω αν υπάρχει κάτι αντίστοιχο στη βάση

Link to comment
Share on other sites

(υπάρχει περίπτωση που έρχεται διπλό, άλλη που έρχεται λάθος -πχ να πατήσω "L" και να επιστρέψει βιβλίο με εναρκτήριο γράμμα τίτλου "H" , κοκ)

Link to comment
Share on other sites

Σαν να ψιλοκατάλαβα, αλλά μήπως μπορείς να γίνεις λίγο πιο συγκεκριμένος?

ΥΓ: μέχρι στιγμής βρήκα τρόπο να δουλεύει και για 3 πεδία, αλλά οχι παράλληλα(πχ αν έχω τίτλο "αβγ" και συγγραφέα "δεζ", δουλεύει αν έχω δώσει το "αβγ" σαν τίτλο και πχ κάνω keyup στο "δ" στο πεδίο του συγγραφέα,αλλά δεν δουλεύει αν το αφήσω σαν "αβ" πχ το πεδίο του τίτλου και πχ "δ" το πεδίο του συγγραφέα)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.