获取下拉框选择的内容是web开发中经常遇到的功能点,网上这方面的例子很多,例如获取选中的下拉框选项的值
$("#ddlRegType").find("option:selected").text();
但是在新建页面中下拉框中的值被载入时,没有选中任何一项,此时这种方法获取不到用户选中的选项。我的方法是首先获取到下拉框中所有选项的数目,然后根据用户选择的选项value值进行循环判断,当用户选中的选项value值与其中一项相等时,再使用上面的代码把选中的内容获取到。具体代码如下:
function setPostTaskName(){
ggiPostId_2 = document.getElementById('ggiPostId_1').value;
var count=$("#ggiPostId_1 option").length;
var postName = "";
if(ggiPostId_2 == ""){
showInfo("请选择一个岗位");
return;
}
for(var i=0;i<count;i++){
if($("#ggiPostId_1").get(0).options[i].value == ggiPostId_2){
$("#ggiPostId_1").get(0).options[i].selected = true;
postName = $("#ggiPostId_1").get(0).options[i].text;
break;
}
}
document.getElementById('ggtTaskName').value = postName + "岗位目标";
}
首先获取到用户选择的下拉框中的选项值,不是文本;第二步,获取到下拉框中的选项数目;第三步,循环遍历所有选项的value值,判断是否与用户选择的value值相等,如果相等,设置该项的selected属性为true,最后,获取到该选项的文本内容。