Uncaught TypeError: Cannot read property 'match' de undefined

avec ce morceau de jQuery-je vérifier si certains champs sont match ou ne sont pas vides, mais j'ai cette erreur.

Uncaught TypeError: Cannot read property 'match' de undefined

Quelqu'un peut me dire ce que je fais de mal ici?

if ( width.match( /^\d+$/ ) && height.match( /^\d+$/ ) && type.length > 0 && color.length > 0 ) {

C'est le code complet:

if( $( "#config" ) ) {
        $( 'input, select' ).on( 'change', function(){
            var width   = $( "#config-steps #width" ).val();
            var height  = $( "#config-steps #height" ).val();
            var type    = $( "#config-steps #type" ).val();
            var color   = $( "#config-steps #selected-color" ).val();

            if ( width.match( /^\d+$/ ) && height.match( /^\d+$/ ) && type.length > 0 && color.length > 0 ) {
                $( "#checkout-message" ).show();

                //Change visible price 
                $( "#change-price" ).html( calculate_price().toFixed( 2 ) );

            } else {
                return false;
            }

        });
    }
Essayez de supprimer les espaces d'après vos déclarations de variables.
Un ou plusieurs de vos variables ne sont pas définies. Êtes-vous sûr que votre sélecteurs sont bonnes?
if( $( "#config" ) ) est toujours vrai avec jQuery!
Oh ok. Comment puis-je vérifier la bonne façon?
Cela signifie #width ou #height ou les deux n'ont pas été trouvée ou n'êtes pas un descendant de #config-steps.

OriginalL'auteur Robbert | 2014-04-28