Avatar billede htx98i17 Professor
23. december 2010 - 13:28 Der er 5 kommentarer og
1 løsning

function som skal have tilføjet en else

function eandublet (needle, haystack, argStrict) {
            // Checks if the given value exists in the array 
            //
            // version: 1009.2513
            // discuss at: http://phpjs.org/functions/in_array    // +  original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
            // +  improved by: vlado houba
            // +  input by: Billy
            // +  bugfixed by: Brett Zamir (http://brett-zamir.me)
            // *    example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);    // *    returns 1: true
            // *    example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
            // *    returns 2: false
            // *    example 3: in_array(1, ['1', '2', '3']);
            // *    returns 3: true    // *    example 3: in_array(1, ['1', '2', '3'], false);
            // *    returns 3: true
            // *    example 4: in_array(1, ['1', '2', '3'], true);
            // *    returns 4: false
            var key = '', strict = !!argStrict;
            if (strict) {
                for (key in haystack) {
                    if (haystack[key] === needle) {
                        return true;            }
                }
            } else {
                for (key in haystack) {
                    if (haystack[key] == needle) {               
                        gruppeform.ean.className='inputboxred';
                    }
                   
                    if (haystack[key] !== needle) {               
                        gruppeform.ean.className='inputbox';
                    }
                }
            }
           
            return false;
        }


Det der sker, er at funktionen søger efter en nål i en høstak. Nålen kunne være "12345". Finder den nålen skal className omdefineres. Hvis man dog fortsætter med at indtaste eksempelvis "123456" så skal className defineres tilbage igen.

Hvordan gør man det? :)
Avatar billede htx98i17 Professor
23. december 2010 - 13:30 #1
Den sidste if(haystack... har jeg selv tilføjet som 3. løsningsforslag. Jeg har forsøgt at sætte en else på den ovenover, det virkede heller ikke.
Avatar billede htx98i17 Professor
23. december 2010 - 14:04 #2
Jeg fandt ud af at der skulle en "end" ind. Og så fungerer den. Men browseren skriver en fejl: End er ikke defineret

Koden ser således ud nu:

function eandublet (needle, haystack, argStrict) {
                      var key = '', strict = !!argStrict;
            if (strict) {
                for (key in haystack) {
                    if (haystack[key] === needle) {
                        return true;            }
                }
            } else {
                for (key in haystack) {
                    if (haystack[key] == needle) {               
                        gruppeform.ean.className='inputboxred';
                        end
                    } else {               
                        gruppeform.ean.className='inputbox';
                       
                    }
                   
                }
            }
           
            return false;
        }
Avatar billede majbom Novice
03. januar 2011 - 18:44 #3
kan du ikke bare bruge funktionen uden at ændre på den?

den returnerer jo true hvis den finder noget, og false, hvis den ikke gør..?
Avatar billede htx98i17 Professor
03. januar 2011 - 20:00 #4
Ja det er rigtig nok. Men er det ikke federe hvis den ikke melder fejl? :)
Avatar billede htx98i17 Professor
13. februar 2011 - 11:09 #5
lukker
Avatar billede htx98i17 Professor
13. februar 2011 - 11:09 #6
lukker
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