<select id="selectstation"> </select>
$(function () { $.post(url, { "action": "station" }, function (data) { var dataObj = eval(data); var element = document.getElementById("selectstation"); element.setAttribute("onchange", "DataStatistics()"); for (var i = 0; i < dataObj.total; i++) { var para = document.createElement("option"); para.setAttribute("value", dataObj.rows[i]["JSON_station_code"]); if (i == 0) { para.selected = "selected"; } para.innerHTML = dataObj.rows[i]["JSON_station_name"]; var element = document.getElementById("selectstation"); element.appendChild(para); } }, 'json'); DataStatistics(); }); function DataStatistics() { var phase1 = document.getElementById("selectstation"); var e = $("#selectstation ").val(); e = $("#selectstation").children(0).val(); e = $('#selectstation option:selected').val();//选中的值 e= phase1.value; e= phase1.innerHTML; }
代码如上,初始化的时候在select里面填充数据,并且选中一个。
然后运行DataStatistics()函数,第一次运行的时候获取不到select里面的value
在点击下拉框改变一下select值触发onchange的时候才能获取到这个函数的值,不知道为什么,很是困惑。希望各位能帮忙解答一下,很是感激
$("#selectstation").bind("change",function(){
//DTOO:
});
填充数据后需要绑定changge事件
谢谢回答!
您的这个函数的作用和我填充数据之前设置了这个函数作用相同吧
var element = document.getElementById("selectstation");
element.setAttribute("onchange", "DataStatistics()");
我填充完数据之后运行了一下这个函数DataStatistics();想获取一下selected里面的值,但是什么都没获取到。
但是页面上select里面是有数据的。所以很困惑是不是先后顺序的原因。
从别的地方触发DataStatistics函数是可以获取到的,只是刚填充完运行这个函数获取不到里面的值
@郭建宇的博客: 我之前也这样做过,不是使用的是JQ,而且没有设置onchange事件也可以获取到值
$(function () {
//地区分类
$.ajax({
url: '/tools/submit_ajax.ashx?action=user_getUserArea&parentid=0',
success: function (data) {
$("#selprovice").html(data);
}
});
});
$(function () {
$("#selprovice").change(function () {
var proviceID = $(this).val();
alert(proviceID);
});
});
@PKSEO_dudu: 您这个函数填充完之后就会触发change么?
我这样做填充完之后就获取select里的值,但是获取不到。必须得选择了某一项才能获取到里面的值
@郭建宇的博客: 我ajax返回的值是这种“<oprion value=1>1</option><oprion value=2>2</option>”
你是返回的什么类型的值?
@PKSEO_dudu: 我返回的不是这种,是"健:值" 这种类型的
然后通过创建option节点,然后再给option节点里面增加value和text内容。