首页 新闻 搜索 专区 学院

Js获取不到select的值

0
[已解决问题] 解决于 2016-05-05 15:06
<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的时候才能获取到这个函数的值,不知道为什么,很是困惑。希望各位能帮忙解答一下,很是感激

饮冰十年的主页 饮冰十年 | 菜鸟二级 | 园豆:206
提问于:2016-04-19 10:35
< >
分享
最佳答案
0

$("#selectstation").bind("change",function(){

  //DTOO:

});

填充数据后需要绑定changge事件

奖励园豆:5
PKSEO_dudu | 初学一级 |园豆:9 | 2016-04-19 10:47

谢谢回答!

您的这个函数的作用和我填充数据之前设置了这个函数作用相同吧

var element = document.getElementById("selectstation");

element.setAttribute("onchange", "DataStatistics()");

我填充完数据之后运行了一下这个函数DataStatistics();想获取一下selected里面的值,但是什么都没获取到。

但是页面上select里面是有数据的。所以很困惑是不是先后顺序的原因。

从别的地方触发DataStatistics函数是可以获取到的,只是刚填充完运行这个函数获取不到里面的值

饮冰十年 | 园豆:206 (菜鸟二级) | 2016-04-19 11:11

@郭建宇的博客: 我之前也这样做过,不是使用的是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 | 园豆:9 (初学一级) | 2016-04-19 11:16

@PKSEO_dudu: 您这个函数填充完之后就会触发change么?

我这样做填充完之后就获取select里的值,但是获取不到。必须得选择了某一项才能获取到里面的值

饮冰十年 | 园豆:206 (菜鸟二级) | 2016-04-19 12:00

@郭建宇的博客: 我ajax返回的值是这种“<oprion value=1>1</option><oprion value=2>2</option>”

你是返回的什么类型的值?

PKSEO_dudu | 园豆:9 (初学一级) | 2016-04-19 17:01

@PKSEO_dudu: 我返回的不是这种,是"健:值" 这种类型的

然后通过创建option节点,然后再给option节点里面增加value和text内容。

饮冰十年 | 园豆:206 (菜鸟二级) | 2016-04-19 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册