Just nu i M3-nätverket
Gå till innehåll

Hur fixar jag dessa saker


farliga

Rekommendera Poster

Här är min nuvarande kod:

 

[log] <html>

<head>

 

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->

<!-- The JavaScript Source!! http://javascript.internet.com -->

function checkFields() {

missinginfo = "";

if (document.kontakt.namn.value == "") {

missinginfo += "\n - Namn";

}

if (document.kontakt.adress.value == "") {

missinginfo += "\n - Adress";

}

if ((document.kontakt.email.value == "") ||

(document.kontakt.email.value.indexOf('@') == -1) ||

(document.kontakt.email.value.indexOf('.') == -1)) {

missinginfo += "\n - Epostadress";

}

if(document.kontakt.meddelande.value == "") {

missinginfo += "\n - Meddelande";

}

if (missinginfo != "") {

missinginfo ="_____________________________\n" +

"Du har inte fyllt i fälten:\n" +

missinginfo + "\n_____________________________" +

"\nFyll i de angivna fälten innan du skickar formuläret!";

alert(missinginfo);

return false;

}

else return true;

}

</script>

 

</head>

 

<body>

 

<form name = "kontakt" onSubmit="return checkFields();" action = "">

<table border = 0 cellpadding = 5 cellspacing = 0>

<tr>

<td> Namn:<br> <input name = "namn" type = "TEXT">

</td>

</tr>

<tr>

<td>Adress:<br>

<input name = "adress" type = "TEXT"></td>

</tr>

<tr>

<td>Epostadress:<br> <input name = "email" type = "TEXT"></td>

</tr>

<tr>

<td> Meddelande:<br> <textarea name = "meddelande" cols = "40" rows = "5">

</textarea></td>

</tr>

<tr>

<td> <input name="SUBMIT" type = "SUBMIT" value = "Skicka formul&auml;ret &raquo;">

</td>

</tr>

</table>

</form>

</body>

 

</html>[/KOD]

 

Jag vill kunna få Submit knappen att flytta på sig när musenpekaren är över knappen. Jag vill själv kunna skriva in pixel/ eller x/y koordinat.

 

Här har jag börjat lite men vet inte hur jag ska få in denna kod i den övre^^:[KOD] <script language:'Javascript'>

var tryck = 0;

 

function flyttaKnapp(knappen){

if (tryck != 3){

tryck++;

 

knappen.style.position = "absolute";

knappLeft = Math.random() * 95;

knappTop = Math.random() * 95;

 

knappen.style.left = knappLeft + '%';

knappen.style.top = knappTop + '%';

}

 

</script>

<body>

 

HTML-kod:

<button id="knapp" onclick="javascript:flyttaKnapp(this);">Klicka!!</

</body>

</html>[/log]

 

 

Sen undrar jag också hur man i koden skriver så att "Namn" rutan i formuläret inte accepterar siffror, utan att de då kommer upp någon alert ruta som säger att de bara accepteras bokstäver?

 

Extremt tacksam för svar, hör av er om några oklarheter..

 

 

Lagt till LOG-tag. Mr Andersson, moderator Javascript

 

[inlägget ändrat 2006-12-20 14:20:40 av Mr Andersson]

Länk till kommentar
Dela på andra webbplatser

Här har du en sida som validerar ett fält med bara siffror.

 

[log]

<html>

<head>

<script>

function myValidateInt () {

var inputStr=document.myForm.myField.value;

for (var i = 0; i < inputStr.length; i++) {

var oneChar = inputStr.charAt(i)

if ((oneChar < "0" || oneChar > "9") && oneChar != "/") {

alert("Bara siffror!")

break;

}

}

}

</script>

</head>

<body>

<form name="myForm">

<input name="myField">

<input type="button" onclick="myValidateInt()" value="Skicka">

</form>

</body>

</html>

[/log]

 

Länk till kommentar
Dela på andra webbplatser

en enklare version av som tilllåter inte siffror

 

if ([color="#ff0000"]parseInt(document.kontakt.namn.value) = document.kontakt.namn.value[/color]) {
	alert("Siffror är inte tillåten!");
	document.kontakt.namn.focus();
	return false;
}

 

Länk till kommentar
Dela på andra webbplatser

en enklare version av som tilllåter inte siffror

Fast den tillåter väl visst siffror, det enda den hindrar är att man skriver hela tal, den hindrar inte att man skriver "kalle42".

 

Personligen skulle hellre använda en vanlig regexp än en sådan loop som Knose använder.

För att kolla om det finns några siffor i strängen s gör man så här:

if (s.match(/[0-9]/)) {
 alert('Det finns siffror i strängen: '+s);
}

 

Länk till kommentar
Dela på andra webbplatser

Fast den tillåter väl visst siffror, det enda den hindrar är att man skriver hela tal, den hindrar inte att man skriver "kalle42".

 

ok, trodde att det skulle fungera för att här

http://www.itgymnasiet.net/lh6haya/skol/uppgift_form.asp

har jag tvärtom "!=", har visst inte testat att användra både siffror och bokstäver, men den fungerar om man bara skiver siffror/bokstäver försig..

 

Länk till kommentar
Dela på andra webbplatser

[log]

<html>

<head>

 

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->

<!-- The JavaScript Source!! http://javascript.internet.com -->

function checkFields() {

missinginfo = "";

if (document.kontakt.namn.value == "") {

missinginfo += "\n - Namn";

}

if (document.kontakt.adress.value == "") {

missinginfo += "\n - Adress";

}

if ((document.kontakt.email.value == "") ||

(document.kontakt.email.value.indexOf('@') == -1) ||

(document.kontakt.email.value.indexOf('.') == -1)) {

missinginfo += "\n - Epostadress";

}

if(document.kontakt.meddelande.value == "") {

missinginfo += "\n - Meddelande";

}

if (missinginfo != "") {

missinginfo ="_____________________________\n" +

"Du har inte fyllt i fälten:\n" +

missinginfo + "\n_____________________________" +

"\nFyll i de angivna fälten innan du skickar formuläret!";

alert(missinginfo);

return false;

}

else return true;

}

</script>

 

</head>

 

<body>

 

<form name = "kontakt" onSubmit="return checkFields();" action = "">

<table border = 0 cellpadding = 5 cellspacing = 0>

<tr>

<td> Namn:<br> <input name = "namn" type = "TEXT">

</td>

</tr>

<tr>

<td>Adress:<br>

<input name = "adress" type = "TEXT"></td>

</tr>

<tr>

<td>Epostadress:<br> <input name = "email" type = "TEXT"></td>

</tr>

<tr>

<td> Meddelande:<br> <textarea name = "meddelande" cols = "40" rows = "5">

</textarea></td>

</tr>

<tr>

<td> <input name="SUBMIT" type = "SUBMIT" value = "Skicka formul&auml;ret &raquo;">

</td>

</tr>

</table>

</form>

</body>

 

</html>

[/log]

 

Så var ska jag lägga in if satsen och allt?

 

Länk till kommentar
Dela på andra webbplatser

[log]<html>

<head>

 

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->

<!-- The JavaScript Source!! http://javascript.internet.com -->

function checkFields() {

if (parseInt(document.kontakt.namn.value) = document.kontakt.namn.value) {

alert("Siffror är inte tillåten!");

document.kontakt.namn.focus();

return false;

}

missinginfo = "";

if (document.kontakt.namn.value == "") {

 

missinginfo += "\n - Namn";

}

if (document.kontakt.adress.value == "") {

missinginfo += "\n - Adress";

}

if ((document.kontakt.email.value == "") ||

(document.kontakt.email.value.indexOf('@') == -1) ||

(document.kontakt.email.value.indexOf('.') == -1)) {

missinginfo += "\n - Epostadress";

}

if(document.kontakt.meddelande.value == "") {

missinginfo += "\n - Meddelande";

}

if (missinginfo != "") {

missinginfo ="_____________________________\n" +

"Du har inte fyllt i fälten:\n" +

missinginfo + "\n_____________________________" +

"\nFyll i de angivna fälten innan du skickar formuläret!";

alert(missinginfo);

return false;

}

else return true;

}

</script>

 

</head>

 

<body>

 

<form name = "kontakt" onSubmit="return checkFields();" action = "">

<table border = 0 cellpadding = 5 cellspacing = 0>

<tr>

<td> Namn:<br> <input name = "namn" type = "TEXT">

</td>

</tr>

<tr>

<td>Adress:<br>

<input name = "adress" type = "TEXT"></td>

</tr>

<tr>

<td>Epostadress:<br> <input name = "email" type = "TEXT"></td>

</tr>

<tr>

<td> Meddelande:<br> <textarea name = "meddelande" cols = "40" rows = "5">

</textarea></td>

</tr>

<tr>

<td> <input name="SUBMIT" type = "SUBMIT" value = "Skicka formul&auml;ret &raquo;">

</td>

</tr>

</table>

</form>

</body>

 

</html>[/log]

Om du mena så här, så funka det inte

 

Länk till kommentar
Dela på andra webbplatser

ok, har du prövat fhe exempel?

if (s.match(/[0-9]/)) {

alert('Det finns siffror i strängen: '+s);

}

 

jag vet inte vad s returnerar.. är det true/false eller ngt annat?

 

Länk till kommentar
Dela på andra webbplatser

jag vet inte vad s returnerar

s returnerar ingenting, det är ett strängobjekt. Funktionen match applicerat på detta returnerar däremot sant om strängen innehåller en eller fler siffror.

 

Länk till kommentar
Dela på andra webbplatser

Nej därför jag ville ju att man INTE skulle kunna skriva siffror, utan bara bokstäver.

Ja, och? Det är ju bara att använda precis det fhe gav för att fixa detta.

 

function ContainsNumbers(s) {
return  (s.match(/[0-9]/));
}

 

Sedan är det ju bara att använda den funktionen för att avgöra om strängen innehåller siffror. Gör den det så låter du bli att posta formuläret och ger användaren en varning.

 

Länk till kommentar
Dela på andra webbplatser

[log]<html>

<head>

 

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->

<!-- The JavaScript Source!! http://javascript.internet.com -->

function checkFields() {

function ContainsNumbers(s) {

return (s.match(/[0-9]/));

}missinginfo = "";

if (document.kontakt.namn.value == "") {

 

missinginfo += "\n - Namn";

}

if (document.kontakt.adress.value == "") {

missinginfo += "\n - Adress";

}

if ((document.kontakt.email.value == "") ||

(document.kontakt.email.value.indexOf('@') == -1) ||

(document.kontakt.email.value.indexOf('.') == -1)) {

missinginfo += "\n - Epostadress";

}

if(document.kontakt.meddelande.value == "") {

missinginfo += "\n - Meddelande";

}

if (missinginfo != "") {

missinginfo ="_____________________________\n" +

"Du har inte fyllt i fälten:\n" +

missinginfo + "\n_____________________________" +

"\nFyll i de angivna fälten innan du skickar formuläret!";

alert(missinginfo);

return false;

}

else return true;

}

</script>

 

</head>

 

<body>

 

<form name = "kontakt" onSubmit="return checkFields();" action = "">

<table border = 0 cellpadding = 5 cellspacing = 0>

<tr>

<td> Namn:<br> <input name = "namn" type = "TEXT">

</td>

</tr>

<tr>

<td>Adress:<br>

<input name = "adress" type = "TEXT"></td>

</tr>

<tr>

<td>Epostadress:<br> <input name = "email" type = "TEXT"></td>

</tr>

<tr>

<td> Meddelande:<br> <textarea name = "meddelande" cols = "40" rows = "5">

</textarea></td>

</tr>

<tr>

<td> <input name="SUBMIT" type = "SUBMIT" value = "Skicka formul&auml;ret &raquo;">

</td>

</tr>

</table>

</form>

</body>

 

</html>[/log]

 

Prova själv, det funkar ju inte?

 

Länk till kommentar
Dela på andra webbplatser

du kan inte lägga in en funktion i en annan funktion.

 

Lägg den sifferfunktionen utanför och anropa FRÅN din checkfunktion.

 

typ:

if (document.kontakt.namn.value == "") {
missinginfo += "\n - Namn";
}
Else {
if (ContainsNumbers(document.kontakt.namn.value)> 0 ) {missinginfo += "\n - Siffror i Namn";} 

}

[inlägget ändrat 2006-12-20 22:29:56 av Jonas_Bo]

Länk till kommentar
Dela på andra webbplatser

if (ContainsNumbers(document.kontakt.namn.value)> 0 )

 

Det räcker med:

if (ContainsNumbers(document.kontakt.namn.value))

 

Länk till kommentar
Dela på andra webbplatser

Lägg funktionen ContainsNumber utanför checkFields.

function ContainsNumbers(s) {
return (s.match(/[0-9]/));
}

function checkFields() {
if (ContainsNumbers(document.kontakt.namn.value))
...osv osv...
}

två tecken mer eller mindre.... :D
Ja, det har ingen "prestandaskillnad" :)

Det var mer en liten notis för trådskaparen vad för värde som kontrolleras i funktionen.

Om det är true eller false.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Nej jag lyckas inte med det, någon som kan klista in direkt och visa?

 

[log]<html>

<head>

 

<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->

<!-- The JavaScript Source!! http://javascript.internet.com -->

function checkFields()

{

function ContainsNumbers(s) {

return (s.match(/[0-9]/));

}

 

missinginfo = "";

if (document.kontakt.namn.value == "") {

 

missinginfo += "\n - Namn";

}

if (document.kontakt.adress.value == "") {

missinginfo += "\n - Adress";

}

if ((document.kontakt.email.value == "") ||

(document.kontakt.email.value.indexOf('@') == -1) ||

(document.kontakt.email.value.indexOf('.') == -1)) {

missinginfo += "\n - Epostadress";

}

if(document.kontakt.meddelande.value == "") {

missinginfo += "\n - Meddelande";

}

if (missinginfo != "") {

missinginfo ="_____________________________\n" +

"Du har inte fyllt i fälten:\n" +

missinginfo + "\n_____________________________" +

"\nFyll i de angivna fälten innan du skickar formuläret!";

alert(missinginfo);

return false;

}

else return true;

}

</script>

 

</head>

 

<body>

 

<form name = "kontakt" onSubmit="return checkFields();" action = "">

<table border = 0 cellpadding = 5 cellspacing = 0>

<tr>

<td> Namn:<br> <input name = "namn" type = "TEXT">

</td>

</tr>

<tr>

<td>Adress:<br>

<input name = "adress" type = "TEXT"></td>

</tr>

<tr>

<td>Epostadress:<br> <input name = "email" type = "TEXT"></td>

</tr>

<tr>

<td> Meddelande:<br> <textarea name = "meddelande" cols = "40" rows = "5">

</textarea></td>

</tr>

<tr>

<td> <input name="SUBMIT" type = "SUBMIT" value = "Skicka formul&auml;ret &raquo;">

</td>

</tr>

</table>

</form>

</body>

[/log]

 

 

 

Länk till kommentar
Dela på andra webbplatser

Varför envisas du med att fortfarande ha ContainsNumbers i din andra funktion :)?

 

Exempel för att leda dig rätt:

function ContainsNumbers(s) {
return (s.match(/[0-9]/));
}

function checkFields() 
{
missinginfo = "";
if (document.kontakt.namn.value == "" || ContainsNumbers(document.kontakt.namn.value)) {
missinginfo += "\n - Namn";
...osv...

Nu är det inte gjort för att skifta felmeddelande beroende vad för värde textfältet för namnet innehåller.

Utan nu testar if-satsen om det antingen är ett tomt värde eller om värdet innehåller någon siffra.

Men du förstår nog principen på hur det ska/kan vara.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...