[Javascript] Wie kann man jquery code mit find () optimieren?


Answers

Kombiniere einfach die Selektoren:

form.children().find('select,input,textarea').each(function(){
        if(!$(this).val()){
            $(this).css('border', '1px solid red');
        }
    }
);

Ändern Sie dann Ihr <select> so dass jede ungültige Option ein leeres oder Nullwertattribut anstelle von "select one" oder 99 hat.

Question

Ich habe ein Formular mit einer id="test" . Innerhalb des Formulars habe ich einige select , input und textarea .

Ich möchte jeden von ihnen durchlaufen und prüfen, ob sie leer sind und dann etwas mit ihnen machen.

var editTest= $('#test');

editGeneric(editTest);

var editGeneric= function(form){
    form.children().find('select').each(
        function(){
            var values = $(this).val();
            if(values === 'select one' || values === 'Select One' || values == 0 || values == 99){
                $(this).css('border', '1px solid red');
            }
        }
    );

    form.children().find('input').each(
        function(){
            var values = $(this).val();
            if(values === ''){
                $(this).css('border', '1px solid red');
            }
        }
    );

    form.children().find('textarea').each(
        function(){
            var values = $(this).val();
            if(values === ''){
                $(this).css('border', '1px solid red');
            }
        }
    );
}

Dieser Code tut, was ich brauche, aber Sie können sehen, dass ich mich ein paar Mal wiederhole.

Wie kann ich diesen Code vereinfachen, damit ich ihn vielleicht mit anderen Formen verwenden kann?

irgendwelche Ideen? Danke

Bearbeiten: Danke an alle

Ich habe den Code auf:

var editGeneric= function(form){

    form.children().find(':input').each( function(){
            var values = $(this).val();

            if ($(this).is('select')){
                if(values === 'select one' || values === 'Select One' || values == 0){
                    $(this).css('border', '1px solid red');
                }
            }
            if ($(this).is('input') || $(this).is('textarea')){
                if(values === ''){
                    $(this).css('border', '1px solid red');
                }
            }
        }
    );

}

editGeneric($('test'));



Links