如问题所述,如何使用jQuery设置DropDownList控件的值?
$("#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>
// 如果你想使用JavaScript将所选项目更改为test2,请尝试以下方法。 // 设置下一个要选择的选项
var NewOprionValue = "Test2"
var RemoveSelected = $("#MyDropDownList")[0].innerHTML.replace('selected', '');
var ChangeSelected = RemoveSelected.replace(NewOption, NewOption + 'selected>');
$('#MyDropDownList').html(ChangeSelected);
使用上面突出显示/选中的答案对我有用...这是一点见解。 我在获取URL时有点作弊,但基本上我是在Javascript中定义URL,然后通过上面的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>
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);
}
});
}
使用元素ID和所选值作为参数调用此函数,例如:
SetSelected('selectID','some option');
当需要设置大量选择选项时,它非常有用。
//customerDB is an Array
for(i of customerDB){
//create option and add to drop down list
var set = `<option value=${i.id}>${i.id}</option>`;
$('#dropDown').append(set);
}
// print dropdown values on console
$('#dropDown').click(function(){
console.log($(this).val())
})
对于使用Bootstrap的人,请使用$(#elementId').selectpicker('val','elementValue')
而不是$('#elementId').val('elementValue')
,因为后者不会更新UI中的值。
注意:即便是.change()
函数也可以起作用,正如一些答案中所建议的,但它会触发$('#elementId').change(function(){//执行某些操作})
函数。
我只是为那些将来参考这个线程的人发布这个信息。
$("#drpDwnListId").val("optionValue").trigger("change");
如果您通过Ajax调用加载所有<options ....></options>
请按照以下步骤进行。
1). 创建一个单独的方法来设置下拉列表的值
例如:
function set_ip_base_country(countryCode)
$('#country').val(countryCode)
}
2). 当ajax调用成功时,调用此方法以完成所有html追加任务
例如:
success: function (doc) {
.....
.....
$("#country").append('<option style="color:black;" value="' + key + '">' + value + '</option>')
set_ip_base_country(ip_base_country)
}