Avatar billede bingokaj Nybegynder
14. august 2001 - 10:13 Der er 7 kommentarer og
1 løsning

Mouseover-effekt på submit-knap i en form

Hej med jer

Jeg bruger i øjeblikket nedenstående kode til at lave en submit-knap med en mouseover i en form. Problemet er at IE 5.0 ikke kan submitte formen ved hjælp af nedenstående kode. Jeg har rodet lidt med <input type=image>, men der kan man vist ikke lave mouseover på... eller hva ?

Krav til knappen: Den skal virke i Netscape 4.0+ og IE 4+ og cursoren skal ændre sig til en hånd når man fører den henover knappen.


<a href=\"#\" onclick=\"java script: Final();\" onMouseOut=\"swapImgRestore()\" onMouseOver=\"swapImage(\'Image3\',\'\',\'../images/siteCPR/knap_send_on.gif\',3)\"><img name=\"Image3\" border=\"0\" src=\"../images/siteCPR/knap_send.gif\" width=\"43\" height=\"16\" alt\"Send\"></a>
Avatar billede erikjacobsen Ekspert
14. august 2001 - 10:16 #1
Du kunne jo starte med at ændre onclick=\"java script: Final();\"  til onclick=\"Final();\"
men jeg ved ikke om der skal mere til
Avatar billede erikjacobsen Ekspert
14. august 2001 - 10:16 #2
...og alt\"Send\" til alt=\"Send\"
Avatar billede bingokaj Nybegynder
14. august 2001 - 10:40 #3
Nu har jeg rettet de to fejl og det ser bedre ud, men virker ikke bedre :-(
Avatar billede erikjacobsen Ekspert
14. august 2001 - 10:46 #4
Hvad med at vi så indholdet af Final ?
Avatar billede bingokaj Nybegynder
14. august 2001 - 13:03 #5
There ya go :-)

<script language=\"JavaScript\" title=\"Dette script bliver brugt til mouseover\">
<!--
function swapImgRestore() {
  var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function preloadImages() {
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf(\"#\")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function findObj(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf(\"?\"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function swapImage() {
  var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//*************************************************************************************

var Erderfejl;

/////////////////////////////////
//Modulus 11 check på CPR-nummer
/////////////////////////////////

function Modulus() {

if (document.INDSIGT.Pernum.value.length != 10 && Erderfejl == \"N\") {
    Erderfejl=\"J\";
    document.INDSIGT.Pernum.focus();
    document.INDSIGT.Pernum.select();
    window.open(\'../GCM/fejlvindue.asp?error=237\',\'Fejlvindue\',\'height=230,width=415\');
    return false;
    }

else {

var string = document.INDSIGT.Pernum.value;
var check1 = string.substring(0,1) * 4;
var check2 = string.substring(1,2) * 3;
var check3 = string.substring(2,3) * 2;
var check4 = string.substring(3,4) * 7;
var check5 = string.substring(4,5) * 6;
var check6 = string.substring(5,6) * 5;
var check7 = string.substring(6,7) * 4;
var check8 = string.substring(7,8) * 3;
var check9 = string.substring(8,9) * 2;
var check10 = string.substring(9, 10) * 0;
var cifre = check1 + check2 + check3 + check4 + check5 + check6 + check7 + check8 +
check9 + check10;
var div = Math.floor(cifre / 11);
var div = div * 11;
var nytal = cifre - div;
var checkcifre;

if (nytal == 0) {
    checkcifre = 0;
    }

else     {
    checkcifre = 11 - nytal;
    }

if (checkcifre != string.substring(9,10) && Erderfejl == \"N\") {
    Erderfejl=\"J\";
    document.INDSIGT.Pernum.focus();
    document.INDSIGT.Pernum.select();
    window.open(\'../GCM/fejlvindue.asp?error=236\',\'Fejlvindue\',\'height=230,width=415\');
    return false;
    }
}
}

function CheckFornavn() {
if (document.INDSIGT.Fornavn.value == \"\" && Erderfejl == \"N\") {
    Erderfejl=\"J\";
    document.INDSIGT.Fornavn.focus();
    document.INDSIGT.Fornavn.select();
    window.open(\'../GCM/fejlvindue.asp?error=238\',\'Fejlvindue\',\'height=230,width=415\');
    }
}

function CheckEfternavn() {
if (document.INDSIGT.Efternavn.value == \"\" && Erderfejl == \"N\") {
    Erderfejl=\"J\";
    document.INDSIGT.Efternavn.focus();
    document.INDSIGT.Efternavn.select();
    window.open(\'../GCM/fejlvindue.asp?error=239\',\'Fejlvindue\',\'height=230,width=415\');
    }
}

//CheckAdr() kaldes ikke pt
function CheckAdr() {
if (document.INDSIGT.Adr.value == \"\" && Erderfejl == \"N\") {
    alert (\"Der skal angive en adresse.\");
    Erderfejl = \"J\";
    document.INDSIGT.Adr.focus();
    document.INDSIGT.Adr.select();
    }
}

function Checkepost()
{
//alert(document.INDSIGT.Epost.value);
var emailValue;
emailValue=document.INDSIGT.Epost.value;

position=emailValue.indexOf(\'@\');

if (emailValue!=\"\")
{        if (position==-1)
            {
            Erderfejl = \"J\";
            document.INDSIGT.Epost.focus();
            document.INDSIGT.Epost.select();
            window.open(\'../GCM/fejlvindue.asp?error=206\',\'Fejlvindue\',\'height=230,width=415\');
            }
        //der er @
        array=emailValue.split(\'@\');
        //der er for mange @
        if (emailValue.split(\'@\').length > 2 && Erderfejl==\"N\")
            {
            Erderfejl = \"J\";
            document.INDSIGT.Epost.focus();
            document.INDSIGT.Epost.select();
            window.open(\'../GCM/fejlvindue.asp?error=207\',\'Fejlvindue\',\'height=230,width=415\');
            }
        //tekst før @ mangler
        if (emailValue.substring(0,position).length==0 && Erderfejl==\"N\")
            {
            Erderfejl = \"J\";
            document.INDSIGT.Epost.focus();
            document.INDSIGT.Epost.select();
            window.open(\'../GCM/fejlvindue.asp?error=208\',\'Fejlvindue\',\'height=230,width=415\');
            }
        //tekst efter @ mangler
        if (emailValue.substring(position+1).length==0 && Erderfejl==\"N\")
            {
            Erderfejl = \"J\";
            document.INDSIGT.Epost.focus();
            document.INDSIGT.Epost.select();
            window.open(\'../GCM/fejlvindue.asp?error=209\',\'Fejlvindue\',\'height=230,width=415\');
            }
        //er der punktum efter @
        tekstEfter=    emailValue.substring(position+1);
        position=tekstEfter.indexOf(\'.\');
        if (position==-1 && Erderfejl==\"N\")
            {
            Erderfejl = \"J\";
            document.INDSIGT.Epost.focus();
            document.INDSIGT.Epost.select();
            window.open(\'../GCM/fejlvindue.asp?error=210\',\'Fejlvindue\',\'height=230,width=415\');
            }
        //tjekker domainenavnets længde
        position=tekstEfter.lastIndexOf(\'.\');
        tekstDomain=tekstEfter.substring(position+1);
        if ((tekstDomain.length < 2 || tekstDomain.length > 3) && (Erderfejl==\"N\"))
            {
            Erderfejl = \"J\";
            document.INDSIGT.Epost.focus();
            document.INDSIGT.Epost.select();
            window.open(\'../GCM/fejlvindue.asp?error=211\',\'Fejlvindue\',\'height=230,width=415\');
            }
        //er der tekst mellem @ og sidste punktum
        if ((tekstEfter.length-(tekstDomain.length+1))==0 && Erderfejl==\"N\")
            {
            Erderfejl = \"J\";
            document.INDSIGT.Epost.focus();
            document.INDSIGT.Epost.select();
            window.open(\'../GCM/fejlvindue.asp?error=212\',\'Fejlvindue\',\'height=230,width=415\');
            }
};

}



function Final() {

Erderfejl=\"N\";
Modulus();
Checkepost();
CheckFornavn();
CheckEfternavn();
//CheckAdr();

//if (Erderfejl==\"J\") { return false; } else { return true; }
if (Erderfejl==\"N\")
{
//document.INDSIGT.action=\"index.asp?send=true\";
document.INDSIGT.submit();
};

}

//-->
</script>
Avatar billede jakoba Nybegynder
14. august 2001 - 14:54 #6
Jeg ville forvente at IE5 (og også IE5.5) sagtens kunne submitte formen ved hjælp af den kode.

Er du sikker på det ikke er noget helt andet der er galt?

Kunne du lægge siden på nettet så jeg kan teste i andre browsere?

mvh JakobA
Avatar billede marla05 Nybegynder
22. august 2001 - 13:45 #7
Du kan godt lave bruge mouseover på <input>, følgende skulle virke:

<input onmouseout=\"imgSubmit.src=\'1.gif\'\" onmouseover=\"imgSubmit.src=\'2.gif\'\" id=imgSubmit type=image src=1.gif>
Avatar billede bingokaj Nybegynder
23. august 2001 - 09:29 #8
hej
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