Estoy intentando establecer matrices para regiones específicas y luego compararlas con el código postal ingresado para establecer el valor de un campo oculto (para nombrar la región). Todo lo que ingreso establece el "No encontrado". Estoy perplejo, cualquier y toda ayuda sería muy apreciada.
HTML:
<input id="zip" name="ZIPCODE" type="text" /> <input id="REGION" name="REGION" type="hidden" />GUION:
var eastZips = [19144, 19103, 19104]; var westZips = [90210, 90211, 90212]; $("#zip").keyup(function() { if ($(this).val() == eastZips) { $("#REGION").val("East"); } else if ($(this).val() == westZips) { $("#REGION").val("West"); } else $("#REGION").val("Not Found"); });El valor de la entrada nunca coincidirá con eastZips o westZips porque está comparando cosas que no son del mismo "tipo". Con sus variables almacenadas como matrices y el valor de entrada como una cadena.
Hay algunos pasos a seguir aquí para aclarar esto.
Aunque lo que está ingresando es un conjunto de dígitos, JS leerá el valor del campo como una cadena, por lo que debe asegurarse de que está procesando ese valor para compararlo correctamente con los números enteros que ha almacenado. Esto se puede lograr poniendo el valor del campo a través de un parseInt
Lo siguiente que desea es verificar si el valor de entrada es parte de cualquiera de los arreglos, esto se puede lograr mediante el uso de include .
var eastZips = [19144, 19103, 19104]; var westZips = [90210, 90211, 90212]; $("#zip").keyup(function() { // Store input value for easier access, and wrap // it in a parseInt to ensure you are storing // an integer for comparison. var zip_value = parseInt( $(this).val() ); // Check if either array stores the input value if ( eastZips.includes( zip_value ) ) { $("#REGION").val( "East" ); } else if ( westZips.includes( zip_value ) ) { $("#REGION").val( "West" ); } else { $("#REGION").val( "Not found" ); } });