If / else если в Jquery для условия
У меня есть набор текстовых полей, где я делаю проверку Скажем, у меня есть поле под названием "места", которое может принять значение меньше, чем "99999".Это значит, что я не смогу войти в "99999" любая вещь меньше, чем это нормально. Для этого я написал ниже if и else if . пожалуйста, скажите мне, делаю ли я что-нибудь неправильно. Я сильно запутался с утра. должно ли оно быть меньше или больше
if ($("#seats").val() != '') {
setflag = false;
alert("Not a valid character")
}
else if($("#seats").val() < 99999) {
alert("Not a valid Number");
} else {
setflag = true;
}
5 ответов
Я очень запутался с утра, должно ли это быть меньше или больше, чем"
это может принимать значение меньше "99999"
Я думаю, вы сами ответили на него... Но это действительный когда он меньше. При этом неверно следующее:
}elseif($("#seats").val() < 99999){
alert("Not a valid Number");
}else{
вы говорите, если это меньше 99999, тогда это не действительным. Вы хотите сделать напротив:
}elseif($("#seats").val() >= 99999){
alert("Not a valid Number");
}else{
кроме того, так как у вас есть $("#seats")
дважды, jQuery должен дважды искать DOM. Вы действительно должны хранить значение или, по крайней мере, элемент DOM в переменной. И еще немного вашего кода не имеет большого смысла, поэтому я собираюсь сделать некоторые предположения и собрать все вместе:
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;
вот рабочий образец:http://jsfiddle.net/LUY8q/
еще несколько вещей в дополнение к уже существующим ответам. Взгляните на это:
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");
}
имя переменной setFlag очень общее, если вы используете его только в сочетании с количеством мест, которые вы должны переименовать (я назвал его seatsValid). Я также инициализировал его в true, который избавляется от необходимости окончательного еще в исходном коде. Затем я включаю селектор и вызываю .val () в переменной. Это хорошая практика для кэширования ваших селекторов, поэтому jquery не нужно пересеките DOM больше, чем нужно. Наконец, при сравнении двух значений вы должны попытаться убедиться, что они одного типа, в этом случае seatsVal является строкой, поэтому, чтобы правильно сравнить его с 99999, вы должны использовать parseInt() на нем.
If statement for images in jquery:
#html
<button id="chain">Chain</button>
<img src="bulb_on.jpg" alt="img" id="img"/>
#script
<script>
$(document).ready(function(){
$("#chain").click(function(){
if($("#img").attr('src')!='bulb_on.jpg'){
$("#img").attr('src', 'bulb_on.jpg');
}
else
{
$("#img").attr('src', 'bulb_onn.jpg');
}
});
});
</script>