I am having troubles with the validating of functions. I need to validate my variables and make sure that you can not enter through with out giving a name or number. What am I doing wrong that this is not working?
<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>
You have to check the return of your validate function instead of candyName as it is not false (it might be empty or undefined but not false), see this snippet:
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)