0
在我正在使用的jQuery函數中,我使用.get返回一些XML數據&然後用它填充下拉框。我用它來建立在選擇<OPTION>
標籤的代碼如下:jQuery下拉框總是顯示第一項
$.get(sURL, function(data) {
var select = $("#dList");
$(data).find("Row").each(function() {
var mgid = $(this).find("MessageGroupID").text();
var gname = $(this).find("GroupName").text();
var option = $("<option>" + gname + "</option>");
option.attr("value", mgid);
select.append(option);
});
});
正被解析的XML是:
<?xml version="1.0" encoding="UTF-8"?>
<Rowsets DateCreated="2013-05-07T11:33:51" EndDate="2013-05-07T11:33:51" StartDate="2013-05-07T10:33:51" Version="1.1.1">
<Rowset>
<Columns>
<Column Description="MessageGroupID" MaxRange="1" MinRange="0" Name="MessageGroupID" SQLDataType="4" SourceColumn="MessageGroupID"/>
<Column Description="GroupName" MaxRange="1" MinRange="0" Name="GroupName" SQLDataType="12" SourceColumn="GroupName"/>
</Columns>
<Row>
<MessageGroupID>1</MessageGroupID>
<GroupName>First Shift</GroupName>
</Row>
<Row>
<MessageGroupID>4</MessageGroupID>
<GroupName>Alternate First Shift</GroupName>
</Row>
<Row><MessageGroupID>7</MessageGroupID>
<GroupName>Temporary First Shift</GroupName>
</Row>
</Rowset>
</Rowsets>
我調用該函數加載的下降在文檔中了。準備好腳本的一部分。
當返回3行時,第一行始終顯示在下拉框中。或者,如果我在前面加上一個空行:
var blankline = $("<option value='' selected='selected'></option>");
我得到的空白下拉框,但現在在下拉4項(空白+ 3我應該有)。我認爲設置selectedindex = -1會這樣做,但它不起作用,因爲這些項目不是靜態的。
如何獲得下拉框同時具有空白/空顯示值,並且在實際選項列表中仍然具有適當數量的項目?
謝謝!
小號
這似乎工作好嗎在Fi refox,但在IE瀏覽器中沒有。谷歌瀏覽器做了一些不同的事情 - 它隱藏了下拉列表中的空行,但它不會重新整理列表。最後一個項目會重複,除非再次點擊下拉菜單,但它不可選。沒有什麼是拋出我看到的錯誤。任何想法爲什麼它的行爲如此? – 2013-05-07 17:59:51
立即檢查... – writeToBhuwan 2013-05-07 18:44:26
謝謝。它現在在所有3種瀏覽器中似乎都表現得相似。然而,在下拉菜單中,當它被點擊時,該框會自動填入第一個條目,這幾乎回到最初問題的來源。現在閱讀你的帖子。 – 2013-05-07 19:09:55