javascript - 如何从 JavaScript 中的 switch 语句调用函数

标签 javascript switch-statement

我对 javascript 还很陌生,所以我可能无法清楚地看到我的问题。我正在尝试创建一个搜索栏,仅搜索 3 个不同的项目。我已经构建了我想要调用的函数,但我无法让它在 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

搜索框显示正常,甚至可以很好地提醒默认,但是当我输入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>

最佳答案

我认为 switch 语句中 break 需要分号(;)

关于javascript - 如何从 JavaScript 中的 switch 语句调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15401186/

相关文章:

javascript - 如何仅验证年.月格式的体验(默认为 0.00)?

javascript - 如何将选择框的值添加到文本框?

javascript - 删除输入值时不会触发 onChange

c# - 如何在 C# 中使用字节常量作为 switch case?

java - 为什么在Java中切换Integer包装器时, 'char'情况无法编译,但切换到Byte时编译正常?

java - 为什么 switch 比 if 快

java - 带堆栈的交换机路由(java语言)

javascript - Backbone.js 比较函数,如何实现降序?

javascript - 在另一个守卫解决后,Angular2 运行守卫

php 在 echo 语句中使用 switch