正如问题所说,我如何使用jQuery设置下拉列表控件的值?
当前回答
下面是一个快速设置所选选项的函数:
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);
}
});
}
使用参数element id和所选值调用此函数;是这样的:
SetSelected('selectID','some option');
当有很多选择选项需要设置时,它很有用。
其他回答
使用上面突出显示的/选中的答案对我有用……这里有一个小见解。 我在获取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>
如果你使用索引,你可以直接用.attr()设置所选索引:
$("#mydropdownlist").attr('selectedIndex', 0);
这将把它设置为下拉列表中的第一个值。
编辑: 我上面的方法过去很管用。但现在似乎不再是了。
但正如韩寒在评论中愉快地指出的那样,正确的做法是:
$("#mydropdownlist").get(0).selectedIndex = index_here;
对于使用Bootstrap的人,使用$(#elementId').selectpicker('val','elementValue')而不是$('#elementId').val('elementValue'),因为后者不会更新UI中的值。
注意:即使.change()函数也可以工作,正如上面在一些回答中所建议的那样,但它会触发$('#elementId').change(function(){//do something})函数。
只是把这个贴出来,以便将来有人引用这个帖子。
这个问题的最佳答案是:
$("#comboboxid").val(yourvalue).trigger("chosen:updated");
e.g:
$("#CityID").val(20).trigger("chosen:updated");
or
$("#CityID").val("chicago").trigger("chosen:updated");
如果你的下拉菜单是Asp。净下拉,然后下面的代码将工作正常,
$("#<%=DropDownName.ClientID%>")[0].selectedIndex=0;
但如果你的下拉是HTML下拉,那么这段代码将工作。
$("#DropDownName")[0].selectedIndex=0;
推荐文章
- 使用jQuery改变输入字段的类型
- 使用jQuery以像素为整数填充或边距值
- 检查是否选择了jQuery选项,如果没有选择默认值
- 将Dropzone.js与其他字段集成到现有的HTML表单中
- 使用jQuery滚动到一个div
- 在JS/jQuery中触发按键/按键/按键事件?
- 如何每5秒重新加载页面?
- getJSON调用中的错误处理
- 如何用jquery或javascript排序对象数组
- 下拉列表的SelectedIndexChanged事件没有触发
- 使用jQuery切换输入禁用属性
- 如何知道一个字符串开始/结束在jQuery特定的字符串?
- Twitter Bootstrap vs jQuery UI?
- 如何绑定“触摸启动”和“点击”事件,但不回应两者?
- 如何使用jQuery从URL中获得锚?