Avatar billede lars_jensen Nybegynder
05. januar 2002 - 05:29 Der er 4 kommentarer og
1 løsning

INPUT styles i Netscape

Jeg har på en side behov for en form for fejlhåndtering der bevirker at jeg dynamisk skifter CSS på indholdet af en INPUT TYPE=\"text\" fra at have en GRØN farve til en RØD farve

Dette virker også suverænt i Internet Explorer og i Nyere Netscape, men ikke i Netscape 4 familien

Kode jeg bruger andetsteds på siden der virker \"over hele linien\"
if (document.tdform.resmatrice\".$i.$j.\".value.toLowerCase() !=
men den her virker ikke i NS4, kan jeg få det til at virke eller er jeg tvunget ud i irriterende reloads ?
document.tdform.resmatrice\".$i.$j.\".style.color = \\\"#800000\\\"

ialt kommer resultatet til at se sådan ud
    function checkifcorrect() {
        var error = 0;
if (document.tdform.resmatrice15.value.toLowerCase() != \'l\') { error++; document.tdform.resmatrice15.style.color = \"#800000\" } else { document.tdform.resmatrice15.style.color = \"#008000\" }
if (document.tdform.resmatrice25.value.toLowerCase() != \'a\') { error++; document.tdform.resmatrice25.style.color = \"#800000\" } else { document.tdform.resmatrice25.style.color = \"#008000\" }
if (document.tdform.resmatrice35.value.toLowerCase() != \'r\') { error++; document.tdform.resmatrice35.style.color = \"#800000\" } else { document.tdform.resmatrice35.style.color = \"#008000\" }
if (document.tdform.resmatrice42.value.toLowerCase() != \'j\') { error++; document.tdform.resmatrice42.style.color = \"#800000\" } else { document.tdform.resmatrice42.style.color = \"#008000\" }
if (document.tdform.resmatrice43.value.toLowerCase() != \'e\') { error++; document.tdform.resmatrice43.style.color = \"#800000\" } else { document.tdform.resmatrice43.style.color = \"#008000\" }
if (document.tdform.resmatrice44.value.toLowerCase() != \'n\') { error++; document.tdform.resmatrice44.style.color = \"#800000\" } else { document.tdform.resmatrice44.style.color = \"#008000\" }
if (document.tdform.resmatrice45.value.toLowerCase() != \'s\') { error++; document.tdform.resmatrice45.style.color = \"#800000\" } else { document.tdform.resmatrice45.style.color = \"#008000\" }
if (document.tdform.resmatrice46.value.toLowerCase() != \'e\') { error++; document.tdform.resmatrice46.style.color = \"#800000\" } else { document.tdform.resmatrice46.style.color = \"#008000\" }
if (document.tdform.resmatrice47.value.toLowerCase() != \'n\') { error++; document.tdform.resmatrice47.style.color = \"#800000\" } else { document.tdform.resmatrice47.style.color = \"#008000\" }

        if (error>0) {
            alert(\"Der er \"+error+\" fejl! Prøv igen.\");
        } else {
            alert(\'Tillykke, du har udfyldt formularen korrekt.\');
            document.tdform.submit();
        }
    }


ps. tag jer ikke af $i og $j, det er PHP koder indlejret
Avatar billede jakoba Nybegynder
05. januar 2002 - 05:49 #1
Det bliver en større affære at gøre det NS4 kompatibelt da den (som du har opdaget) ikke tillader den slags farveskift i formfelter og heller ikke mange andre steder.

så i dette tilfælde er der vist ikke andre realistiske muligheder end reload eller også et lavere ambitionsniveau for NS (fx et billedskift der peger på feltet

mvh JakobA
Avatar billede lars_jensen Nybegynder
05. januar 2002 - 05:50 #2
ambitionsniveauet kan jeg desværre ikke gøre noget ved ... det er ret fastlagt...

Så det du foreslår er istedet en gif udfor hvert felt der angiver om det er ok eller ikke
Avatar billede jakoba Nybegynder
05. januar 2002 - 06:24 #3
Ja. fx ved hjaelp af en lille marker eller ikke funktion som:

function testOgMarker( feltNavn, rigtigt ) {
    if (document.tdform.elements[ feltnavn ].value.toLowerCase() != rigtigt) {
        if ( document.layers ) {
            document.images[ feltnavn +\"img\" ].srg = \"roedpil.gif\"
        } else {
            document.tdform.elements[ feltnavn ].style.color = \"#800000\"
        }
        return 1;
    } else {
        if ( document.layers ) {
            document.images[ feltnavn +\"img\" ].src = \"gennemsigtig.gif\"
        } else {
            document.tdform.elements[ feltnavn ].style.color = \"#008000\"
        }
        return 0;
    }
}; //end testOgMarker( string, string ) -> 0 eller 1

// Din checkifcorrect funktion bliver så:

function checkifcorrect() {
    var error = 0;
    error += testOgMarker( \'resmatrice15\', \'l\' );
    error += testOgMarker( \'resmatrice25\', \'a\' );
    error += testOgMarker( \'resmatrice35\', \'r\' );
    error += testOgMarker( \'resmatrice42\', \'j\' );
    error += testOgMarker( \'resmatrice43\', \'e\' );
...osv
    error += testOgMarker( \'resmatrice47\', \'n\' );

    if (error>0) {
        alert(\"Der er \"+error+\" fejl! Prøv igen.\");
    } else {
        alert(\'Tillykke, du har udfyldt formularen korrekt.\');
        document.tdform.submit();
    }
}

  Billederne ved siden af felterne skal så have et navn der er feltnavnet +\'img\'. eg:
<img name=\'resmatrice15img\' src=\'gennemsigtig.gif\' width=30 height=25>

mvh JakobA
Avatar billede lars_jensen Nybegynder
05. januar 2002 - 06:28 #4
kanont svar fra en genial mand :)
Avatar billede lars_jensen Nybegynder
05. januar 2002 - 08:08 #5
For andre der kunne bruge ovenstående skal i lige huske den typo der er i
function testOgMarker( feltNavn, rigtigt ) {
skal være
function testOgMarker( feltnavn, rigtigt ) {
altså lille n i feltnavn
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