Выберите параметры формы, используя ссылки и asmselect
Я интегрировал jquery-asmselect и хотел бы иметь возможность выбирать опции, используя другие ссылки на странице. Чтобы увидеть, что я пытаюсь сделать, вы можете просмотреть страницу здесь
Вот код jquery, который я использую для asmselect:
$(document).ready(function() {
$("#CategoryID").asmSelect({
addItemTarget: 'bottom',
animate: true,
highlight: false,
sortable: false
}).after($("<a href='#' class='select-all'>select all neighborhoods</a>").click(function() {
$("#CategoryID").children().attr("selected", "selected").end().change();
return false;
}));
$("#search_SubCategoryID").asmSelect({
addItemTarget: 'bottom',
animate: true,
highlight: false,
sortable: false
}).after($("<a href='#' class='select-all'>select all cuisines</a>").click(function() {
$("#search_SubCategoryID").children().attr("selected", "selected").end().change();
return false;
}));
});
1 ответ
Прежде всего, вам нужно определить, в каком районе вы нажимаете. Добавление rel (как в опциях) может работать:
...
<li class="evillage">
<a href="#" rel="asm0option0">East Village/LES</a>
</li>
...
Затем добавьте этот скрипт:
$(".search-map a").click(function(event) {
event.preventDefault();
var hood = $(this).attr('rel');
var $option = $('option[rel=' + hood + ']');
$option.change();
return false;
});
На основании этого примера. Вам просто нужно получить соответствующий вариант в зависимости от нажатой ссылки, а затем вызвать change();
вызвать на это.
Редакция:
Приведенный выше код не удался:P Вот новая версия (с работающей скрипкой):
$(".search-map a").click(function() {
var $city = $(this).html();
var $rel = $(this).attr('rel');
var disabled = $('#asmSelect0 option[rel=' + $rel + ']:first').attr('disabled');
if (typeof disabled !== 'undefined' && disabled !== false) {
return false;
}
var $option = $('<option></option>').text($city).attr({'selected': true, 'rel': $rel});
$('#asmSelect0').append($option).change();
$('#asmSelect0 option[rel=' + $rel + ']:first').remove();
return false;
});
Я должен был сделать что-то, что мне не очень нравилось, но я не мог найти другого способа сделать это, не вступив в конфликт с плагином. Во всяком случае, это не так уж плохо. В основном я получаю название района, отн., Чтобы определить опцию, сгенерировать новый <option>
, change();
и удалите старый тег option. Плагину не нравилось пытаться изменить сам тег без создания нового... Мне пришлось добавить if (...)
Дело в том, что при добавлении окрестности (отключении ее в селекте) и повторном нажатии на ту же окрестность он включал ее в селекте (и мы этого не хотим, поскольку она уже выбрана). С этим условием, если мы нажмем на ссылку, соседство которой отключено, мы ничего не сделаем, и опция останется прежней.
Извините, если мое объяснение - отстой, мне потребовалось некоторое время, чтобы решить проблему, мне пришлось все заново собрать, и я почувствовал, что мне не хватает английского xD Надеюсь, это сработает!