0
我得到的JSON響應如下。
{
"stateTables":[
{
"stateId":15,
"stateName":"kkkkkkkk"
},
{
"stateId":34,
"stateName":"qwqw"
},
{
"stateId":61,
"stateName":"xx"
},
{
"stateId":66,
"stateName":"aaa"
}
]
}
接收此響應的JavaScript函數如下所示。
var timeout;
var request;
function poplateStateListe(id)
{
if(!request)
{
if(id===null||id===""||id===undefined||isNaN(id))
{
var options = $("#state");
options.find('option').remove().end();
options.append($("<option/>").val("").text("Select"));
alert("Please select an appropriate option.");
return;
}
request = $.ajax({
datatype:"json",
type: "GET",
contentType: "application/json; charset=utf-8",
data: {"id": id},
url: "PopulateStateList.action",
success: function(response)
{
var list = response.stateTables;
var options = $("#state");
options.find('option').remove().end();
options.append($("<option/>").val("").text("Select"));
$.each(list, function() {
options.append($("<option/>").val(this.stateId).text(this.stateName));
});
},
complete: function()
{
timeout = request = null;
},
error: function(request, status, error)
{
if(status!=="timeout"&&status!=="abort")
{
alert(status+" : "+error);
}
}
});
timeout = setTimeout(function() {
if(request)
{
request.abort();
alert("The request has been timed out.");
}
}, 30000);
}
}
我將此回覆寫入<select>
列表。然而,我產生這個清單如下。
<select name="entity.stateId" id="state">
<option>Select</option>
<option>kkkkkkkk</option>
<option>qwqw</option>
<option>xx</option>
<option>aaa</option>
</select>
不添加的<option>
的value
屬性。實際的清單應該是。
<select name="entity.stateId" id="state">
<option value="">Select</option>
<option value="15">kkkkkkkk</option>
<option value="34">qwqw</option>
<option value="61">xx</option>
<option value="66">aaa</option>
</select>
爲什麼不是value
屬性通過$.each
功能
$.each(list, function() {
options.append($("<option/>").val(this.stateId).text(this.stateName));
});
添加success
處理程序給定的JavaScript函數裏面?我在這裏錯過了很明顯的東西。
這工作正常。謝謝。 – Tiny