通过AJAX 后台绑定一个下拉,加载数据没问题,数据如:2018
2017我想 加载的时候就默认获取第一个值2018,可是各种写法就是获取不了,哪里问题。
但通过手动选择,触发 通过change 我可以获取2018 2017 的数值。 $("#dllYear").change(function () {
//获取选中的value值
var selectVlaue = $(this).find("option:selected").val();
alert(selectVlaue);
});
<div style="width:49%; float:left">
<label for="Yearname">Year \ 年:</label>
<div>
<select id="dllYear" class="form-control">
</select>
</div>
</div> function BindYear(fType, seleparm, corpCode, lang) {
$.ajax({
type: "get",
url: '@Url.Action("GetDllList", "Board")',
data: { fType: fType, seleparm: seleparm, corpCode: corpCode, lang: lang },
dataType: "json",
contentType: "application/json",
success: function (data) {
var ddl = $("#dllYear");
//添加默认
//ddl.append("<option value='-1'>--请选择--</option>");
//转成Json对象
var result = eval(data);
var i = 0;
//循环遍历 下拉框绑定
$(result).each(function (i) {
//var opt = $("<option></option>").text(result[key].FISCAL_YR).val(result[key].FISCAL_YR);
//ddl.append(opt);
if (i == 0)
{
ddl.append("<option value=" + i + " selected>" + result[i].FISCAL_YR + "</option>");
}
else
{
ddl.append("<option value=" + i + ">" + result[i].FISCAL_YR + "</option>");
}
i = i + 1;
});
}
});
}
简单说,如何在绑定完后,获取第一个数据:2018, 各种写法都获取不了,数据绑定是没问题的。 请有时间 帮忙下 谢谢!var teval = document.getElementById("dllYear").value;
var teval = $("#dllYear").find("option:selected").text();
var teval = $("#dllYear").find("option:first").text();
var teval =$("#dllYear").val();但 通过手动选择下拉,就可以获取的到。
function BindYear(fType, seleparm, corpCode, lang) {
$.ajax({
type: "get",
url: '@Url.Action("GetDllList", "Board")',
data: { fType: fType, seleparm: seleparm, corpCode: corpCode, lang: lang },
dataType: "json",
contentType: "application/json",
success: function (data) {
var ddl = $("#dllYear");
//添加默认
//ddl.append("<option value='-1'>--请选择--</option>");
//转成Json对象
var result = eval(data);
var i = 0;
//循环遍历 下拉框绑定
$(result).each(function (i) {
//var opt = $("<option></option>").text(result[key].FISCAL_YR).val(result[key].FISCAL_YR);
//ddl.append(opt);
if (i == 0)
{
ddl.append("<option value=" + i + " selected>" + result[i].FISCAL_YR + "</option>");
}
else
{
ddl.append("<option value=" + i + ">" + result[i].FISCAL_YR + "</option>");
}
i = i + 1;
}); //要在option元素都添加之后才能获取
var selectVlaue = ddl.find("option:selected").val();
alert(selectVlaue);
}
});
}
$(document).ready(function () { BindYear('FISCAL_YR', '', '', '');
//获取不了 第一个加载值
// var tev = document.getElementById("dllYear").value;
// var tev = $("#dllYear").find("option:selected").text();
// var tev = $("#dllYear").find("option:first").text();
//var tev = $("#dllYear").val();
alert(tev);
return false;
});
ajax是异步加载的。
ajax的 success: function (data) 函数也是异步执行的,
使用ajax一定要了解“异步”的概念。就是说,$.ajax()之后的代码会先执行,这时option元素还都没有添加,当然获取不到。
success: function (data) 函数是在异步加载完毕之后才执行,要在这时才能获取到数据。