簡體   English   中英

下拉列表值不顯示

[英]drop down list values not showing

這是我在網頁上遇到的一個非常奇怪的問題。 我目前有一個下拉列表,使用perl和javascript填充了來自數據庫的數據,但該下拉列表未顯示我從數據庫接收的值。

我目前擁有的代碼如下:

my $dataX = ${ConnectToDatabase($main::edsUGCar, $main::databaseEnv)};
$resultSet = $dataX->Execute("select vendor from dex_vendor_info group by vendor");

my @list_of_vendors;
while(!$resultSet->EOF) {
push @list_of_vendors, $resultSet->Fields("vendor")->Value;
    $resultSet->MoveNext;
}

$list_of_vendors_json = encode_json(\@list_of_vendors);

print <<ONE;
<html>
<body>
<h4> Test Vendor Array Javascript </h4>

<p id="demo"</p>
<form id="myForm">
<select id="selectNumber">
<option>Choose a Vendor</option>
<script type="text/javascript" language="JavaScript">
var list_of_vendors = $list_of_vendors_json;
var select = document.getElementById("selectNumber"); 
for(var i = 0; i < list_of_vendors.length; i++) {
    var opt = list_of_vendors[i];
    var el = document.createElement("option");
    el.text = opt;
    el.value = opt;
    select.appendChild(el);
}​
</script>
</select>
</form>
</body>
</html>
ONE

當我檢查下拉列表元素時,輸出的HTML源顯示:

<SELECT id=selectNumber> <OPTION selected>Choose a Vendor</OPTION> 
<SCRIPT language=JavaScript type=text/javascript>
var list_of_vendors = ["3D Systems","3DSystems","3M"];
var select = document.getElementById("selectNumber"); 
for(var i = 0; i < list_of_vendors.length; i++) {
    var opt = list_of_vendors[i];
    var el = document.createElement("option");
    el.text = opt;
    el.value = opt ;
    select.appendChild(el);
}
</SCRIPT>
 <OPTION value="3D Systems"></OPTION> # Info Missing here after the `>`
 <OPTION value="3DSystems"></OPTION>
 <OPTION value="3M></OPTION>
</SELECT>

您是否嘗試過將腳本移出選擇標簽? DTD(HTML 4)指出選擇標簽具有以下結構:

<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- option selector -->

這基本上意味着您不能省略開始或結束<select>標記,並且<select>標記只能包含<optgroup><option>標記 ,其他都不能(沒有<script>

在此部分中:

<script type="text/javascript">
    var list_of_vendors = $list_of_vendors_json;
    var select = document.getElementById("selectNumber"); 
    for(var i = 0; i < list_of_vendors.length; i++) {
        var opt = list_of_vendors[i];
        var el = document.createElement("OPTION");

el.appendChild(document.createTextNode(opt)); <-這行代碼丟失了!

        el.text = opt
        el.value = opt
        select.appendChild(el);
    }
</script>

感謝CannibalGorilla的建議...感謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM