If/else else if in Jquery for a condition
Iam confused a lot from morning whether it should be less than or greater than`
this can accept value less than "99999"
I think you answered it yourself... But it's valid when it's less than. Thus the following is incorrect:
}elseif($("#seats").val() < 99999){
alert("Not a valid Number");
}else{
You are saying if it's less than 99999, then it's not valid. You want to do the opposite:
}elseif($("#seats").val() >= 99999){
alert("Not a valid Number");
}else{
Also, since you have $("#seats")
twice, jQuery has to search the DOM twice. You should really be storing the value, or at least the DOM element in a variable. And some more of your code doesn't make much sense, so I'm going to make some assumptions and put it all together:
var seats = $("#seats").val();
var error = null;
if (seats == "") {
error = "Number is required";
} else {
var seatsNum = parseInt(seats);
if (isNaN(seatsNum)) {
error = "Not a valid number";
} else if (seatsNum >= 99999) {
error = "Number must be less than 99999";
}
}
if (error != null) {
alert(error);
} else {
alert("Valid number");
}
// If you really need setflag:
var setflag = error != null;
Here's a working sample: http://jsfiddle.net/LUY8q/
A few more things in addition to the existing answers. Have a look at this:
var seatsValid = true;
// cache the selector
var seatsVal = $("#seats").val();
if(seatsVal!=''){
seatsValid = false;
alert("Not a valid character")
// convert seatsVal to an integer for comparison
}else if(parseInt(seatsVal) < 99999){
seatsValid = false;
alert("Not a valid Number");
}
The variable name setFlag is very generic, if your only using it in conjunction with the number of seats you should rename it (I called it seatsValid). I also initialized it to true which gets rid of the need for the final else in your original code. Next, I put the selector and call to .val() in a variable. It's good practice to cache your selectors so jquery doesn't need to traverse the DOM more than it needs to. Lastly when comparing two values you should try to make sure they are the same type, in this case seatsVal is a string so in order to properly compare it to 99999 you should use parseInt() on it.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<form name="myform">
Enter your name
<input type="text" name="inputbox" id='textBox' value="" />
<input type="button" name="button" class="member" value="Click1" />
<input type="button" name="button" value="Click2" onClick="testResults()" />
</form>
<script>
function testResults(n) {
var answer = $("#textBox").val();
if (answer == 2) {
alert("Good !");
} else if (answer == 3) {
alert("very Good !");
} else if (answer == 4) {
alert("better !");
} else if (answer == 5) {
alert("best !");
} else {
alert('wrong');
}
}
$(document).on('click', '.member', function () {
var answer = $("#textBox").val();
if (answer == 2) {
alert("Good !");
} else if (answer == 3) {
alert("very Good !");
} else if (answer == 4) {
alert("better !");
} else if (answer == 5) {
alert("best !");
} else {
alert('wrong');
}
});
</script>