私は 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
検索ボックスは正常に表示され、警告も表示されますdefault
が、入力4426
してクリックしても何も起こりません。私がそれをいくらか機能させることができた唯一の方法は、のdocument.writeln (buildProduct);
代わりに a を追加することです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>