我在javascript中很新,所以我可能看不清我的問題。我試圖創建一個搜索欄,只是搜索說,3個不同的項目。我已經構建了我想要調用的函數,但是我無法在switch語句函數中顯示該函數。如何通過javascript中的switch語句調用函數
function doSearch() { //start doSearch
searchvalue = document.searchbox.searchterm.value
switch (searchvalue){ //start switch statement
case "4426": buildProduct(); //this is the part that I can't get to work properly.
break
case "88123": buildProduct();
break
case "2400X": buildProduct();
default: alert("Sorry, please try again.")
break
} //end switch statement
} //end doSearch
搜索框顯示細膩,它甚至提醒default
就好了,但是當我進入4426
和點擊,它什麼都不做。我能夠有效地實現它的唯一方法是如果我添加document.writeln (buildProduct);
而不是buildProduct()
。 而對於形式的HTML是
<FORM NAME="searchbox">
<INPUT TYPE="TEXT" NAME="searchterm">
<INPUT TYPE="BUTTON" VALUE="Search" ONCLICK="Javascript:doSearch()">
</FORM>
編輯: 這就是全部代碼。
function makeHeader() {
var data = "<B>"
data +="<H1>Computers for Sale:</H1>"
data +="</B>"
return(data)
}
function makeFooter() {
var data = "<B>"
data +="<small>Copyright 2013 ComputersforSale</small>"
data +="</B>"
return(data)
}
function buildProduct(prodName, prodID, prodDescription) { //start buildProduct
var data ="<TABLE style='width:100%' BORDER=1 CELLPADDING=10><tr><td>"
data += makeHeader()
data += "</td></tr>"
data += "<tr><td>"
data += prodName + '</br>' + prodID + '<br>' + prodDescription
data += "</td></tr>"
data += "<tr><td>"
data += makeFooter()
data += "</td></tr>"
data += "</table>"
return(data)
document.writeln(buildProduct)
document.close()
} //end buildProduct
function doSearch() { //start doSearch
searchvalue = document.searchbox.searchterm.value
switch (searchvalue){ //start switch statement
case "4426":
buildProduct();
break;
case "88123":
buildProduct();
break;
case "2400X":
buildProduct();
break;
default:
alert("Sorry, please try again.")
break;
} //end switch statement
} //end doSearch
該函數的HTML鏈接:
<a href= "Javascript:buildProduct('HP 4426', '4426','Newest and Best Laptop from HP Computer')">Item #1 HP 4426</a></br>
<a href= "Javascript:buildProduct('IBM 88123 ThinkPad', '88123','IBM micro Laptop Computer')">Item #2 IBM 88123 ThinkPad</a></br>
<a href= "Javascript:buildProduct('Dell Dimension 2400', '2400X','A fast 2.4 ghz computer, 80 GB HD, 256 Meg, CDRW and DVD.')">Item #3 Dell Dimension 2400</a>
是什麼buildProduct()是什麼樣子?這可能是該函數中的一個錯誤。 – DiMono 2013-03-14 04:28:11
你有缺少分號,未聲明的全局變量,雜亂的縮進,不知道它有什麼問題,但我會開始修復這些問題。然後嘗試用控制檯調試你的代碼,看看它是否會給出任何錯誤。 – elclanrs 2013-03-14 04:28:39
所以你實際上沒有'switch',而是你有鏈接。在這種情況下,你沒有對你正在構建的HTML標記做任何事情,正如我在我現在刪除的答案中所述。我不知道你對HTML字符串會發生什麼,但現在你只是忽略它。 – 2013-03-14 05:17:01