Avatar billede bue Nybegynder
09. november 2003 - 00:42 Der er 26 kommentarer og
2 løsninger

Aktivering af "java" send knap

Jeg har lavet en "send kanp" som består af teksten send formular med et javascript.
Hvordan gør jeg at denne knap først kan aktiveres når felterne: fornavn, efternavn, land, telefon, email er udfyldt?

Mvh
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:05 #1
<SCRIPT LANGUAGE="JavaScript">
<!--

function check()
{
var fejl = "";
el = document.forms['FORMNAVN'].elements;
for(i=0;i<el.length;i++){
  if(el[i].type=="text"){
    if (el[i].value.length == 0) { fejl = "ja" }
    }
  }

if (fejl == "ja") {
alert("Du skal udfylde ALLE felter!");
return false;
} else {
alert("OK")
document.forms.FORMNAVN.submit();
}

}
//-->
</SCRIPT>

<form name="FORMNAVN" action="side.asp" onSubmit="return check();" method="post">
<input type="text" name="fornavn">
<input type="text" name="efternavn">
<input type="text" name="land">
<input type="text" name="telefon">
<input type="text" name="email">
<input type="button" value="Send formular" onClick="check()">
</form>
Avatar billede grunken Nybegynder
09. november 2003 - 01:08 #2
er det de eneste felter der er i formen ?
Avatar billede bue Nybegynder
09. november 2003 - 01:11 #3
grunken>Nej - der er flere felter end det...

thesurfer> Jeg har allerede én send knap som blot består af en tekst med et script som gør man kan sende ved at trykke på den. Hvordan skal det sidste så skrives - og hvor?
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:16 #4
hvordan ser denne tekst ud? altså html koden?

du kan altid bruge <span onClick="check()">Send</span>
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:17 #5
bue> du nævnte kun de 5 felter.. hvis du har andre textbokse checkes de også..

ellers skal du hen og lave 5 if-sætninger..
Avatar billede bue Nybegynder
09. november 2003 - 01:18 #6
jeg kopierer lige hele koden ind....

here goes:

<html>
<head>
<title>www.MINSIDE.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}
a:active {
    text-decoration: none;
}
-->
</style></head>
       
        <script type="text/javascript"><!--
function send()
{
document.forms['kontaktformular'].submit();
}
// -->
</script>

<body>
<form method="post" action="http://www.MINSIDE.com/cgi-bin/FormMail.pl" name="kontaktformular" enctype="x-www-form-urlencoded">
  <table>
  <tr>
    <td width="831" height="325" align="left" valign="top">   
          <table width="831" border="0" align="left" cellpadding="0" cellspacing="0">
        <tr>
          <td width="90" height="325" rowspan="12" align="left" valign="top"><strong>Ang&aring;ende:</strong></td>
          <td width="16" height="325" rowspan="12">&nbsp;</td>
          <td width="312" height="325" rowspan="12" align="left" valign="top">            <textarea name="Angående" style="background-color : transparent;" cols="30" rows="18" wrap="VIRTUAL" id="Angående" tabindex="13"></textarea> </td>
          <td width="35" height="325" rowspan="12">&nbsp;</td>
          <td width="202" height="25" align="left" valign="top"><strong>Fornavn:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Fornavn" type="text" id="Fornavn" size="30" style="background-color : transparent;" onchange="this.form.subm.disabled = false" tabindex="1">* </td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Efternavn:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Efternavn" type="text" id="Efternavn" size="30" style="background-color : transparent;" onchange="this.form.subm.disabled = false" tabindex="2">* </td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Organisation:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Organisation" type="text" id="Organisation" size="30" style="background-color : transparent;" tabindex="3"></td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Adresse:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Adresse" type="text" id="Adresse" size="30" style="background-color : transparent;" tabindex="4"></td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Post-nr. og By:</strong></td>
          <td width="220" height="25" align="left" valign="top">
            <!--webbot bot="Validation" B-Value-Required="TRUE"
            I-Minimum-Length="4" -->
            <input name="Postnummer" type="text" id="Postnummer" size="5" style="background-color : transparent;" tabindex="5">
            <input name="By" type="text" id="By" size="20" style="background-color : transparent;" tabindex="6"></td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Stat:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Stat" type="text" id="Stat" size="30" style="background-color : transparent;" tabindex="7"></td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Land:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Land" type="text" id="Land" size="30" style="background-color : transparent;" onchange="this.form.subm.disabled = false" tabindex="8">*</td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Telefon:</strong></td>
          <td width="220" height="25" align="left" valign="top"><!--webbot
            bot="Validation" S-Data-Type="Number" S-Number-Separators=".,"
            B-Value-Required="TRUE" I-Minimum-Length="8" --><input name="Telefon" type="text" id="Telefon" size="30" style="background-color : transparent;" onchange="this.form.subm.disabled = false" tabindex="9">* </td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>Fax:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Fax" type="text" id="Fax" size="30" style="background-color : transparent;" tabindex="10"></td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><strong>E-mail:</strong></td>
          <td width="220" height="25" align="left" valign="top"><input name="Email" type="text" id="Email" size="30" style="background-color : transparent;" onchange="this.form.subm.disabled = false" tabindex="12">*</td>
        </tr>
        <tr>
          <td height="25" colspan="2" align="left" valign="top"><p>&nbsp;</p>
            <p><strong>            *) Disse felter skal udfyldes</strong></p></td>
        </tr>
        <tr>
          <td width="202" height="25" align="left" valign="top"><h4>&nbsp;</h4></td>
          <td width="220" height="25" align="right" valign="top"><strong><a href="#" onClick="send(); return false;"><font color="black">Send formular</font></a></strong></td>
        </tr>
          </table>
      <input type="hidden" name="recipient" value="sbl@mblm.dk"><input type="hidden" name="subject" value="kontakt: MINSIDE.com">
      <input type="hidden" name="redirect" value="http://www.MINSIDE.com/pages/XXXXXX.html">
    </form></td>
  </tr>
</body>
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:20 #7
f.eks.:

function check()
{
var fejl = "";
var frm = document.forms['FORMNAVN'];

if (frm.fornavn.value.length == 0) { fejl = "ja" }
if (frm.efternavn.value.length == 0) { fejl = "ja" }
if (frm.land.value.length == 0) { fejl = "ja" }
if (frm.telefon.value.length == 0) { fejl = "ja" }
if (frm.email.value.length == 0) { fejl = "ja" }

if (fejl == "ja") {
alert("Du skal udfylde ALLE felter!");
return false;
} else {
alert("OK")
document.forms.FORMNAVN.submit();
}

}
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:22 #8
Hvis du har mange fejler der ikke må være tomme, ville det være nemmest med en array.
Men da det kun er 5 felter der ikke må være tomme, er en 5xIF løsning ved acceptabelt.
Avatar billede grunken Nybegynder
09. november 2003 - 01:22 #9
sådan her ?

men du må altså selv rode det til med din egen kode ;)

<script type="text/javascript">
function check(){

str = "fornavn,efternavn,land,telefon,email" //her indtaster du bare de felter der skal checkes!
elm = document.forms[0].elements
err = 0;

for (i=0;i<elm.length;i++){
  if (str.indexOf(elm[i].name)!=-1 && elm[i].value=="")err++ 
}

if(err==0)elm[elm.length-1].disabled=false;
}
</script>

<form name="frm">
<input type="text" name="fornavn" onchange="check();"><br>
<input type="text" name="efternavn" onchange="check();"><br>
<input type="text" name="land" onchange="check();"><br>
<input type="text" name="telefon" onchange="check();"><br>
<input type="text" name="email" onchange="check();"><br>
<input type="button" value="send" onclick="alert('hejsa')" disabled>
</form>
Avatar billede bue Nybegynder
09. november 2003 - 01:24 #10
thesurfer> kan jeg bare sætte det her script ind efter det andet??
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:25 #11
du skal bare bruge:

<script language="javascript">
function check()
{
var fejl = "";
var frm = document.forms['FORMNAVN'];

if (frm.fornavn.value.length == 0) { fejl = "ja" }
if (frm.efternavn.value.length == 0) { fejl = "ja" }
if (frm.land.value.length == 0) { fejl = "ja" }
if (frm.telefon.value.length == 0) { fejl = "ja" }
if (frm.email.value.length == 0) { fejl = "ja" }

if (fejl == "ja") {
alert("Du skal udfylde ALLE felter!");
return false;
} else {
alert("OK")
document.forms.FORMNAVN.submit();
}

}
</script>

og f.eks.: <span onClick="check()">Send formular</span>
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:27 #12
bue> linien alert("OK") er bare for at teste om det virker.. når du vil tage scriptet i bruge, fjerner du linien

grunken> er det ikke lidt overkill at bruge array når det drejer sig om ca 5 felter?
Det er sikkert hurtigere end 5xIF, men det kan du kun mærke hvis du tæller milisekunder :)
Avatar billede grunken Nybegynder
09. november 2003 - 01:32 #13
thesurfer

1. det er ikke et array, men en simpel streng
2. når jeg "prøver" at kode prøver jeg at strukturere det mest muligt, men det må spørger jo helt selv tage stilling til ;) (altså om han vil bruge (if's) eller ikke

med hensyn til overkill, så er det aldrig overkill når du komprimerer antallet af linier!
Avatar billede bue Nybegynder
09. november 2003 - 01:32 #14
Jeg kan ikke få det til at virke... jeg kan aktivere den og sende uden at have skrevet noget i felterne...
Har det nogen betydning hvor på siden jeg sætter scriptet ind??
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:36 #15
Der her virker fint hos mig:

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--

function check()
{
var fejl = "";
var frm = document.forms['FORMNAVN'];

if (frm.fornavn.value.length == 0) { fejl = "ja" }
if (frm.efternavn.value.length == 0) { fejl = "ja" }
if (frm.land.value.length == 0) { fejl = "ja" }
if (frm.telefon.value.length == 0) { fejl = "ja" }
if (frm.email.value.length == 0) { fejl = "ja" }

if (fejl == "ja") {
alert("Du skal udfylde ALLE felter!");
return false;
} else {
alert("OK")
document.forms.FORMNAVN.submit();
}

}

//-->
</SCRIPT>

</head>

<body>
<form name="FORMNAVN" action="side.asp" onSubmit="return check();" method="post">
<input type="text" name="fornavn">
<input type="text" name="efternavn">
<input type="text" name="land">
<input type="text" name="telefon">
<input type="text" name="email">
<input type="button" value="Send formular" onClick="check()">
</form>
</body>
</html>


Husk at rette FORMNAVN til navnet på din form.

Og.. hvilket script er det lige du taler om..? der er indtil videre 3 scripts i spm'et..
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:38 #16
Man kan også bruge tal der henviser til form nummeret, f.eks. 0 som grunken har gjort.. men det gør at man skal ændre tallet på formene hvis man beslutter sig for at flytte formen..
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:40 #17
kiggede ikke engang på navnet på din form.. :)
du skal bare erstatte "FORMNAVN" med "kontaktformular".
Avatar billede grunken Nybegynder
09. november 2003 - 01:42 #18
bue hvis du nu havde skrevet at din knap var et link kunne det være at både mig og surfer havde grebet tingene ander ledes an :)

prøv at brug lidt tid på at formulere dine spørgsmål, for vores og din skyld!

lav din send funktion om så den ser sådan ud!

function send()
str = "fornavn,efternavn,land,telefon,email"
elm = document.forms['kontaktformular']
err = 0;

for (i=0;i<elm.elements.length;i++){
  if (str.indexOf(elm.elements[i].name)!=-1 && elm[i].value=="")err++ 
}
if(err==0)elm.submit();
}
</script>
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:44 #19
ahh.. da han sagde "tekst", mente han "link" :)
jeg troede det bare var noget tekst.. derfor skrev jeg:
<span onClick="check()">Send formular</span>

:)
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:45 #20
grunken> du mangler et "{" efter send():

function send()
str = "fornavn,efternavn,land,telefon,email"
Avatar billede grunken Nybegynder
09. november 2003 - 01:47 #21
klart ;)
Avatar billede bue Nybegynder
09. november 2003 - 01:48 #22
hvor skal det { stå?
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:49 #23
function send(){
Avatar billede bue Nybegynder
09. november 2003 - 01:53 #24
Så virker det sgu!!!
Tusind tak for hjælpen - begge to!!!

Hvis du lige indgiver et svar grunken deler jeg point mellem jer.

endnu en gang tak!
:)
Avatar billede grunken Nybegynder
09. november 2003 - 01:55 #25
velbekomme ;)
Avatar billede grunken Nybegynder
09. november 2003 - 01:59 #26
upz ;)
Avatar billede thesurfer Nybegynder
09. november 2003 - 01:59 #27
grunken> et svar.. :)
Avatar billede grunken Nybegynder
09. november 2003 - 02:10 #28
hehe, det er som om det ikke rigtigt fungerer i den her ende lige nu surfer ;p
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester