Tengo problemas con la validación de funciones. Necesito validar mis variables y asegurarme de que no puedas entrar sin dar un nombre o número. ¿Qué estoy haciendo mal para que esto no funcione?
<script> var candyName = false; var pricePerLb; var numOfLbs; var message; candyName = prompt("Enter the name of the candy: "); while(candyName == false){ alert("Blank is invalid. Enter valid name: "); candyName = prompt("Enter the name of the candy: "); } pricePerLb = parseFloat(prompt("Enter the price per pound: ")); numOfLbs = parseInt(prompt("Enter the average number of pounds sold in a month: ")); if(numOfLbs > 2000 || pricePerLb > 10){ message = candyName + " that costs $" + pricePerLb + " is sold, on average, " + numOfLbs + " lbs a month are a best-selling item."; }else{ message = candyName + " are not a best-selling item."; } function validate(candyName){ if(candyName != ""){ valid = true; }else{ valid = false; alert("Blank is invalid: "); } return valid; alert(message); </script>Debe verificar el retorno de su función de validación en lugar de candyName, ya que no es falso (puede estar vacío o indefinido pero no falso), vea este fragmento:
var candyName = false; var pricePerLb; var numOfLbs; var message; candyName = prompt("Enter the name of the candy: "); while(validate(candyName) == false){ alert("Blank is invalid. Enter valid name: "); candyName = prompt("Enter the name of the candy: "); } pricePerLb = parseFloat(prompt("Enter the price per pound: ")); numOfLbs = parseInt(prompt("Enter the average number of pounds sold in a month: ")); if(numOfLbs > 2000 || pricePerLb > 10){ message = candyName + " that costs $" + pricePerLb + " is sold, on average, " + numOfLbs + " lbs a month are a best-selling item."; }else{ message = candyName + " are not a best-selling item."; } function validate(candyName){ if(candyName != ""){ valid = true; }else{ valid = false; } return valid; } alert(message)