Функция изменения JQuery, основанная на том, является ли «выбор» больше или меньше заданного значения - PullRequest
0 голосов
/ 27 августа 2010

Это, кажется, побеждает меня в данный момент, но я не думаю, что смогу быть за миллион миль отсюда.

По сути, у меня есть форма подтверждения возраста, которая просто показывает год, если это не год, в котором день месяца также повлияет на пользователя, удовлетворяющего возрастному ограничению (в данном случае 1992 год для 18) - в этом случаедень / месяц также будут отображаться (fadeIn).

Итак, вот код, который у меня есть:

$(document).ready(function(){
$('#dateob').hide();  //hide the div containing the month and day selects
$("#f_yob").change(function() {
//select change function - if the value is greater than 1992 show the other select boxes
if ("$('#f_yob').attr('value')>1992")  {
$('#dateob').fadeIn('slow');
}
//otherwise hide the day/month selects 
else {
$('#dateob').fadeOut('slow');
}
});
});

Если кто-нибудь сможет сказать мне, где я иду не так, я действительно ценю это!

Энди

Ответы [ 2 ]

3 голосов
/ 27 августа 2010

Вам просто нужно изменить if на это:

if (parseInt($(this).val(), 10) > 1992)  {

В <select> (или любом другом типе ввода) вы используете .val(), чтобы получить значение, затем используете parseInt(), так как вы сравниваете его с число (.val() возвращает строку).


Для "что не так?" В основном это синтаксис part..s, у вас есть строка в if(), которая, если не пусто, равна true, что касается проверки if(), вместо этого вам нужно фактическое сравнение там.

1 голос
/ 27 августа 2010

в пятой строке вашего кода вы делаете что-то вроде этого:

if ("$('#f_yob').attr('value')>1992") { }

Я полагаю, что вы имели в виду:

 if ($('#f_yob').attr('value')>1992) { }

Или еще лучше:

if (parseInt($('#f_yob').val()) > 1992)  { }

Редактировать 1 Вы можете использовать .val() вместо .attr('value').

Редактировать 2: Добавлен parseInt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...