我有一个ajax调用返回的数据,我正在为每个返回的数据行创建一个选项(下拉选择)元素,我需要根据文本选择其中一个默认选择。但价值并没有分配给我所做的那个"选择"。以下是我的代码:
$.each(JSON.parse(r.d), function (key, value) {
if (value == 'Username') {
$('#ddlcriteria1')
.append($('<option selected="selected">', { value: key })
.text(value));
}
else {
$('#ddlcriteria1')
.append($('<option>', { value: key })
.text(value));
}
});
我为每个返回的行添加一个选项元素,并将默认选择的元素设置为&#34;用户名&#34;。在添加完这个之后我查看DOM。我明白这一点:
<option value="1">First Name</option>
<option value="2">Last Name</option>
<option selected="selected">Username</option>
<option value="4">Email</option>
<option value="8">Department</option>
<option value="9">Status</option>
<option value="10">Position</option>
<option value="11">Role</option>
<option value="12">User Group</option>
<option value="13">Course Code</option>
<option value="15">Enrollment Location</option>
<option value="16">Organization</option>
选项元素&#34;用户名&#34;文本没有赋值,知道为什么会发生这种情况吗?
答案 0 :(得分:4)
在对象中设置selected
属性,如下所示:
$('<option>', { value: key, selected: true })
答案 1 :(得分:1)
做得好:
var optionElement = $('<option/>').attr({
"selected":"selected",
"value": key
});
$('#ddlcriteria1')
.append(optionElement)
.text(value));
使用您的代码,您将覆盖最后一个属性
答案 2 :(得分:0)
你可以尝试这样的事情。
$.each(JSON.parse(r.d), function (key, value) {
if (value == 'Username') {
$('#ddlcriteria1')
.append($('<option selected="selected" value='+ key+'>')
.text(value));
}
else {
$('#ddlcriteria1')
.append($('<option>', { value: key })
.text(value));
}
});
答案 3 :(得分:0)
我不太了解您的代码,但是您会问,如果值是用户名我没有看到像用户名这样的值,因为dom中的值可能会丢失......
如果您的选择ID是ddlcriteria1,您可以选择此表单的值。
if (value == 'Username') {
$('#ddlcriteria1').val('Username');
}
这就是你所需要的一切
如果你的代码很好,你可以这样做:
$.each(JSON.parse(r.d), function (key, value) {
if (value == 'Username') {
$('#ddlcriteria1').val('Username');
}
else {
$('#ddlcriteria1')
.append($('<option>', { value: key })
.text(value));
}
});
答案 4 :(得分:0)
这是您修改的代码:
$.each(JSON.parse(r.d), function (key, value) {
if (value == 'Username') {
$('#ddlcriteria1')
.append($('<option>', { value: key, selected: "selected" })
.text(value));
}
else {
$('#ddlcriteria1')
.append($('<option>', { value: key })
.text(value));
}
});
您应该在selected
函数的第二个参数中设置数组中的append
属性。