Відповіді:
$("#mydropdownlist").val("thevalue");
просто переконайтесь, що значення в тегах параметрів відповідає значенню методу val.
$("#mycontrolId").selectmenu('refresh');
щоб відобразити зміни
Якщо ви працюєте з індексом, ви можете встановити вибраний індекс безпосередньо за допомогою .attr ():
$("#mydropdownlist").attr('selectedIndex', 0);
Це встановить його першим значенням у списку, що випадає.
Редагувати: Як я це робив вище, раніше працював. Але здається, що це більше не відбувається.
Але, як Хан так приємно вказує в коментарях, правильний спосіб зробити це:
$("#mydropdownlist").get(0).selectedIndex = index_here;
select
тег не має жодного атрибута selectedIndex
. Натомість це властивість об'єкта DOM. Отже код повинен бути:$("#mydropdownlist").get(0).selectedIndex = index_here;
$("#mydropdownlist").prop('selectedIndex', index_here);
Також працює.
Як запропонував @ Nick Berardi, якщо змінене значення не відображається на передньому кінці інтерфейсу користувача, спробуйте:
$("#mydropdownlist").val("thevalue").change();
selectmenu
у моїй версії jQuery change()
не визначено , але робить трюк.
Спробуйте цей дуже простий підхід:
/*make sure that value is included in the options value of the dropdownlist
e.g.
(<select><option value='CA'>California</option><option value='AK'>Alaska</option> </select>)
*/
$('#mycontrolId').val(myvalue).attr("selected", "selected");
$("#mycontrolId").selectmenu('refresh');
$('#mycontrolId').selectmenu('refresh').val(myvalue).attr("selected", "selected");
?
Найкраща відповідь на питання:
$("#comboboxid").val(yourvalue).trigger("chosen:updated");
наприклад:
$("#CityID").val(20).trigger("chosen:updated");
або
$("#CityID").val("chicago").trigger("chosen:updated");
задане значення та подія випадаючого списку оновлення
$("#id").val("1234").change();
Існує багато способів зробити це. Ось деякі з них:
$("._statusDDL").val('2');
АБО
$('select').prop('selectedIndex', 3);
Я думаю, що це може допомогти:
$.getJSON('<%= Url.Action("GetDepartment") %>',
{ coDepartment: paramDepartment },
function(data) {
$(".autoCompleteDepartment").empty();
$(".autoCompleteDepartment").append($("<option />").val(-1));
$.each(data, function() {
$(".autoCompleteDepartment").append($("<option />").val(this.CodDepartment).text(this.DepartmentName));
});
$(".autoCompleteDepartment").val(-1);
}
);
Якщо ви зробите це так, ви додасте елемент без тексту. Отже, коли ви клацаєте де комбо, воно не з’являється, але значення -1 ви додали пізніший вибір з $ (". AutoCompleteDepartment"). Val (-1); дозволить вам контролювати, чи комбо має дійсне значення.
Сподіваюся, це допомагає комусь.
Вибачте за мою англійську.
Якщо вам просто потрібно встановити значення випадаючого меню, тоді найкращий спосіб
$("#ID").val("2");
Якщо вам доведеться запустити будь-який сценарій після оновлення випадаючого значення, наприклад, якщо ви встановите будь-яку подію onChange у спадному меню, і ви хочете запустити це після оновлення спадного меню, ніж вам потрібно використовувати подібне
$("#ID").val("2").change();
Ось функція, зроблена для швидкого встановлення вибраного параметра:
function SetSelected(elem, val){
$('#'+elem+' option').each(function(i,d){
// console.log('searching match for '+ elem + ' ' + d.value + ' equal to '+ val);
if($.trim(d.value).toLowerCase() == $.trim(val).toLowerCase()){
// console.log('found match for '+ elem + ' ' + d.value);
$('#'+elem).prop('selectedIndex', i);
}
});
}
Викликайте цю функцію з ідентифікатором елемента аргументу та вибраним значенням; подобається це:
SetSelected('selectID','some option');
Це корисно, коли існує багато варіантів вибору.
У випадку, коли ви завантажуєте всіх <options ....></options>
за допомогою Ajax call
Виконайте ці кроки, щоб зробити це.
1). Створіть окремий метод для встановленого значення випадаючого меню
для Ex:
function set_ip_base_country(countryCode)
$('#country').val(countryCode)
}
2). Викличте цей метод, коли Ajax завершить успіх виклику всіх завдань, що додаються в HTML
Для Ex:
success: function (doc) {
.....
.....
$("#country").append('<option style="color:black;" value="' + key + '">' + value + '</option>')
set_ip_base_country(ip_base_country)
}
Встановити drop-down
selected
значення та оновити зміни
$("#PR2DistrictId option[value='@Model.PR2DistrictId']").attr("selected", true).trigger("chosen:updated")
Тут ми спочатку встановлюємо значення з, Model
а потім оновлюємо його на вибраному
// Html Формат випадаючого списку.
<select id="MyDropDownList">
<option value=test1 selected>test1</option>
<option value=test2>test2</option>
<option value=test3>test3</option>
<option value=test4>test4</option>
// Якщо ви хочете змінити вибраний елемент на test2 за допомогою javascript. Спробуйте це. // встановити наступний параметр, який потрібно вибрати
var NewOprionValue = "Test2"
var RemoveSelected = $("#MyDropDownList")[0].innerHTML.replace('selected', '');
var ChangeSelected = RemoveSelected.replace(NewOption, NewOption + 'selected>');
$('#MyDropDownList').html(ChangeSelected);
Використання виділеної / перевіреної відповіді вище працювало для мене ... ось невелике розуміння. Я трохи обдурив отримання URL-адреси, але в основному я визначаю URL-адресу в Javascript, а потім встановлюю її через відповідь jquery зверху:
<select id="select" onChange="window.location.href=this.value">
<option value="">Select a task </option>
<option value="http://127.0.0.1:5000/choose_form/1">Task 1</option>
<option value="http://127.0.0.1:5000/choose_form/2">Task 2</option>
<option value="http://127.0.0.1:5000/choose_form/3">Task 3</option>
<option value="http://127.0.0.1:5000/choose_form/4">Task 4</option>
<option value="http://127.0.0.1:5000/choose_form/5">Task 5</option>
<option value="http://127.0.0.1:5000/choose_form/6">Task 6</option>
<option value="http://127.0.0.1:5000/choose_form/7">Task 7</option>
<option value="http://127.0.0.1:5000/choose_form/8">Task 8</option>
</select>
<script>
var pathArray = window.location.pathname.split( '/' );
var selectedItem = "http://127.0.0.1:5000/" + pathArray[1] + "/" + pathArray[2];
var trimmedItem = selectedItem.trim();
$("#select").val(trimmedItem);
</script>
Для людей, які використовують Bootstrap, використовуйте $(#elementId').selectpicker('val','elementValue')
замість цього $('#elementId').val('elementValue')
, оскільки останній не оновлює значення в інтерфейсі.
Примітка . Навіть .change()
функція працює, як було запропоновано вище в деяких відповідях, але вона запускає $('#elementId').change(function(){ //do something })
функцію.
Просто розміщуйте це там, щоб люди посилалися на цю нитку в майбутньому.