Jag har söker en funktion som kontrollerar om två inmatade lösenord är likadana eller inte. Jag har hittat ett script här på webForum som jag tror funkar. Men jag lyckas inte få in det i nedanstående kod:
<script type="text/javascript">
/* Detta script finns att hämta på http://www.jojoxx.net och
får användas fritt så länge som dessa rader står kvar. */
String.prototype.isValidEmail = function() {
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validateForm() {
if (document.bli_medlem.Firstname.value=="") {
alert("Du måste fylla i ditt förnamn.");
return false;
} else if (document.bli_medlem.Lastname.value=="") {
alert("Du måste fylla i ditt efternamn.");
return false;
} else if (document.bli_medlem.Streetadress.value=="") {
alert("Du måste fylla i din gatuadress.");
return false;
} else if (document.bli_medlem.State.value=="") {
alert("Du måste fylla i din ort.");
return false;
} else if (document.bli_medlem.Zipcode.value=="") {
alert("Du måste fylla i ditt postnummer.");
return false;
} else if (!document.bli_medlem.Email.value.isValidEmail()) {
alert("Du måste fylla i korrekt en email adress.");
return false;
} else if (document.bli_medlem.YearOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.MonthOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.DayOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.Password.value=="") {
alert("Du måste fylla i ett lösenord.");
return false;
} else if (document.bli_medlem.PasswordRepeat.value=="") {
alert("Du måste fylla i ett lösenord.");
return false;
} else if (document.bli_medlem.Username.value=="") {
alert("Du måste fylla i ett användarnamn.");
return false;
} else if (document.bli_medlem.StateVisible.value=="") {
alert("Du måste fylla i din ort.");
return false;
}
</script>
Koden som inte fungerar riktigt, den kontrollerar alla fält om de är OK. Men man kan skriva in två lösenord utan att den säger till:
<script type="text/javascript">
/* Detta script finns att hämta på http://www.jojoxx.net och
får användas fritt så länge som dessa rader står kvar. */
String.prototype.isValidEmail = function() {
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
var Password = document.bli_medlem.Password.value;
var PasswordRepeat = document.bli_medlem.PasswordRepeat.value;
function validateForm() {
if (document.bli_medlem.Firstname.value=="") {
alert("Du måste fylla i ditt förnamn.");
return false;
} else if (document.bli_medlem.Lastname.value=="") {
alert("Du måste fylla i ditt efternamn.");
return false;
} else if (document.bli_medlem.Streetadress.value=="") {
alert("Du måste fylla i din gatuadress.");
return false;
} else if (document.bli_medlem.State.value=="") {
alert("Du måste fylla i din ort.");
return false;
} else if (document.bli_medlem.Zipcode.value=="") {
alert("Du måste fylla i ditt postnummer.");
return false;
} else if (!document.bli_medlem.Email.value.isValidEmail()) {
alert("Du måste fylla i korrekt en email adress.");
return false;
} else if (document.bli_medlem.YearOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.MonthOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.DayOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.Password.value=="") {
alert("Du måste fylla i ett lösenord.");
return false;
} else if (document.bli_medlem.PasswordRepeat.value=="") {
alert("Du måste fylla i ett lösenord.");
return false;
} else if (document.bli_medlem.Username.value=="") {
alert("Du måste fylla i ett användarnamn.");
return false;
} else if (document.bli_medlem.StateVisible.value=="") {
alert("Du måste fylla i din ort.");
return false;
} else if (Password != PasswordRepeat) {
alert("Lösenorden måste vara likadana.");
return false;
}
</script>
<script type="text/javascript">
/* Detta script finns att hämta på [url]http://www.jojoxx.net[/url] och
får användas fritt så länge som dessa rader står kvar. */
String.prototype.isValidEmail = function() {
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9.-_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9.-_]*)[a-zA-Z0-9]{1}).([a-zA-Z]{2,4})$/)
}
var Password = document.bli_medlem.Password.value;
var PasswordRepeat = document.bli_medlem.PasswordRepeat.value;
function validateForm() {
if (document.bli_medlem.Firstname.value=="") {
alert("Du måste fylla i ditt förnamn.");
return false;
} else if (document.bli_medlem.Lastname.value=="") {
alert("Du måste fylla i ditt efternamn.");
return false;
} else if (document.bli_medlem.Streetadress.value=="") {
alert("Du måste fylla i din gatuadress.");
return false;
} else if (document.bli_medlem.State.value=="") {
alert("Du måste fylla i din ort.");
return false;
} else if (document.bli_medlem.Zipcode.value=="") {
alert("Du måste fylla i ditt postnummer.");
return false;
} else if (!document.bli_medlem.Email.value.isValidEmail()) {
alert("Du måste fylla i korrekt en email adress.");
return false;
} else if (document.bli_medlem.YearOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.MonthOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.DayOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.Password.value=="") {
alert("Du måste fylla i ett lösenord.");
return false;
} else if (Password != PasswordRepeat) {
alert("Lösenorden överensstämmer inte.");
return false;
} else if (document.bli_medlem.Username.value=="") {
alert("Du måste fylla i ett användarnamn.");
return false;
} else if (document.bli_medlem.StateVisible.value=="") {
alert("Du måste fylla i din ort.");
return false;
} else if (Password != PasswordRepeat) {
alert("Lösenorden måste vara likadana.");
return false;
}
</script>
Jag måste ha ätit någon mystisk svamp när jag skrev ovanstående... :)
Som nitro skriver:
<script type="text/javascript">
/* Detta script finns att hämta på [url]http://www.jojoxx.net[/url] och
får användas fritt så länge som dessa rader står kvar. */
String.prototype.isValidEmail = function() {
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9.-_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9.-_]*)[a-zA-Z0-9]{1}).([a-zA-Z]{2,4})$/)
}
function validateForm() {
var Password = document.bli_medlem.Password.value;
var PasswordRepeat = document.bli_medlem.PasswordRepeat.value;
if (document.bli_medlem.Firstname.value=="") {
alert("Du måste fylla i ditt förnamn.");
return false;
} else if (document.bli_medlem.Lastname.value=="") {
alert("Du måste fylla i ditt efternamn.");
return false;
} else if (document.bli_medlem.Streetadress.value=="") {
alert("Du måste fylla i din gatuadress.");
return false;
} else if (document.bli_medlem.State.value=="") {
alert("Du måste fylla i din ort.");
return false;
} else if (document.bli_medlem.Zipcode.value=="") {
alert("Du måste fylla i ditt postnummer.");
return false;
} else if (!document.bli_medlem.Email.value.isValidEmail()) {
alert("Du måste fylla i korrekt en email adress.");
return false;
} else if (document.bli_medlem.YearOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.MonthOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.DayOfBirth.value=="") {
alert("Du måste ange ditt personnummer.");
return false;
} else if (document.bli_medlem.Password.value=="") {
alert("Du måste fylla i ett lösenord.");
return false;
} else if (document.bli_medlem.PasswordRepeat.value=="") {
alert("Du måste fylla i ett lösenord.");
return false;
} else if (document.bli_medlem.Username.value=="") {
alert("Du måste fylla i ett användarnamn.");
return false;
} else if (document.bli_medlem.StateVisible.value=="") {
alert("Du måste fylla i din ort.");
return false;
} else if (Password != PasswordRepeat) {
alert("Lösenorden måste vara likadana.");
return false;
}
</script>
Offtopic: Vad är syftet med dubbelnegationen i din emailvalidering?
String.test(regexp) returnerar inte en boolean, utan det som matchar regexpen den får som argument eller null om inget matchar. Eftersom det är klart vettigare att returnera true eller false från metoden isValidEmail än exempelvis en array med strängar, så används dubbelnegation för att göra om ett godtyckligt värde till motsvarande booleska värde. Efter som null betraktas som false, blir !null true, och !!null blir samma som !true, alltså false. Och tvärtom, eftersom icke-null evalueras till true så blir en negation av det false, och en dubbelnegation true. Comprenez-vous?
String.test(regexp) returnerar inte en boolean, utan det som matchar regexpen den får som argument eller null om inget matchar. Eftersom det är klart vettigare att returnera true eller false från metoden isValidEmail än exempelvis en array med strängar, så används dubbelnegation för att göra om ett godtyckligt värde till motsvarande booleska värde. Efter som null betraktas som false, blir !null true, och !!null blir samma som !true, alltså false. Och tvärtom, eftersom icke-null evalueras till true så blir en negation av det false, och en dubbelnegation true. Comprenez-vous?
String.test(regexp) returnerar inte en boolean, utan det som matchar regexpen den får som argument eller null om inget matchar. Eftersom det är klart vettigare att returnera true eller false från metoden isValidEmail än exempelvis en array med strängar, så används dubbelnegation för att göra om ett godtyckligt värde till motsvarande booleska värde. Efter som null betraktas som false, blir !null true, och !!null blir samma som !true, alltså false. Och tvärtom, eftersom icke-null evalueras till true så blir en negation av det false, och en dubbelnegation true. Comprenez-vous?
Jag skulle dock personligen gjort "rätt" och använt test.