За последние три дня я пытаюсь исправить это, но не могу решить ..
Вот мой запрос, если кто-то может мне помочь ..
У меня на странице есть некоторые раскрывающиеся страницы, которые содержат некоторые вопросы, связанные с безопасностью. Если пользователь уже выбрал вопрос № 1 из первого списка вниз, то во всех оставшихся раскрывающихся списках первый вопрос должен быть отключен ... затем тот же сценарий должен применяться для оставшегося раскрывающегося списка.
Я создал свой сценарий, но так как все атрибуты IE7 отключены, поэтому я создал собственный сценарий, чтобы отключить выбор значений из списка, но он не работает при первом нажатии ..
HTML
<select name="select1" class="securityQuestions">
<option value="0">Please select an option...</option>
<option value="1">What is your favorite color?</option>
<option value="2">What is your pet's name?</option>
<option value="3">How old are you?</option>
</select>
<select name="select2" class="securityQuestions">
<option value="0">Please select an option...</option>
<option value="1">What is your favorite color?</option>
<option value="2">What is your pet's name?</option>
<option value="3">How old are you?</option>
</select>
<select name="select3" class="securityQuestions">
<option value="0">Please select an option...</option>
<option value="1">What is your favorite color?</option>
<option value="2">What is your pet's name?</option>
<option value="3">How old are you?</option>
</select>
Вот мой скрипт для создания
универсальный скрипт
(function($){
$.fn.removeQuestions = function() {
var wholeList = $(this);
wholeList.focus(function() {
// no of question lists on the page
var listLength = wholeList.length;
// array to hold which questions have been selected
var questionArray = new Array(listLength);
// loop to find index of questions selected, store in array
$('option:selected').each(function(index, value) {
questionArray[index] = $(this).index();
});
// loop over all question lists
wholeList.each(function(index, value) {
// remove any existing attr from previous selection
$('option', this).removeAttr('disabled');
// for each list hide each question in array
for(j = 0; j <= questionArray.length; j++) {
// don't hide if it's default 'choose your question'
if(!questionArray[j] == 0) {
$('option', this).eq(questionArray[j]).attr('disabled','disabled');
}
}
// now re-show the question selected in this list item.
$('option', this).eq(questionArray[index]).removeAttr('disabled');
});
});
return wholeList;
}; // end of plugin
})(jQuery);
(function($) {
$('select').change(function() {
if(this.options[this.selectedIndex].disabled) {
// Needs revision!
if (this.options.length == 0) {
this.selectedIndex = -1;
} else {
this.selectedIndex--;
}
$(this).trigger("change");
}
});
$('select').mousedown(function(){
$(this).children('option[disabled]').each(function() {
$(this).css({'color': '#cccccc'});
});
});
})(jQuery);