2013-10-03 6 views
1

Мне нужно отключить значения параметров в select, которые меньше некоторого числа, о котором я не знаю заранее (он установлен в другом элементе формы). Мне нужно что-то вроде кода ниже, но с переменным значением «variableInteger»:Параметры фильтра jQuery со значением больше (меньше) чем переменная

select.children().filter(function() { 
    return $(this).attr("value") > variableInteger; 
}).each(function() {$(this).attr('disabled', 'disabled')}); 

Есть ли какой-то умный способ сделать это?

PS. Значение variableInteger - это другой элемент формы, имя которого также известно только во время выполнения.

+1

не Какая часть вашего кода не работает? У вас возникли проблемы с получением значения «variableInteger»? – musefan

+0

также, вы используете '>' (больше, чем), когда ваши требования подсказывают, что вы хотите '<' (меньше) – musefan

+0

musefan Спасибо, это действительно была проблема с переменнойInteger. Благодаря вашему комментарию я нашел его сам :) Будет ли отвечать на @tymeJV так же правильно, как и мне. – Jaroslav

ответ

6

Нет необходимости в .each, также использовать prop и this.value (нет необходимости $(this).attr("value");)

select.children("option").filter(function() { 
    return this.value > variableInteger; 
}).prop("disabled", true); 
+2

хорошая альтернатива, но я не думаю, что вы отвечаете на вопрос. Код OP должен работать ([как показано здесь] (http://jsfiddle.net/fJ3vm/)), если параметры 'select' и' variableInteger' установлены правильно – musefan

Смежные вопросы