簡體   English   中英

如何清除開關功能中保存的變量值?

[英]How do you clear variable values held in a switch function?

我已經在學校這個項目上工作了幾個星期,並來過這里幾次以指出正確的方向,所以謝謝您。 這是我(和我的老師)都在努力的問題。

我必須創建一個訂購單(... yep),用戶必須在其中選擇一個計算機機箱,顯示器和打印機。 圖片必須出現在所選內容旁邊,並且價格必須更新。 如果一切都檢查訂單提交,否則,您會收到警告,要求填寫表格。 您還可以選擇重置或清除表單。 除了清除功能外,其他所有功能都可以正常工作。 重置所有字段(包括價格),但是各個值仍保持不變。 如果我在所有部分中選擇第一個選項,則總計為$ 1000,清除后,總計字段將顯示為零。 然后,如果我從組A中選擇另一個選項,則值仍將與組B和C相加,就好像沒有清除任何內容一樣。

希望我能清楚地解釋一下,這是我所擁有的:

<html>
<head>
<script>
function doSubmit()
{
 if (validateText() == false)
  {
   alert("Please Complete Customer Information");
   return;
  }
 if (validateRadio() == false)
  {
   alert("Please Select a Case")
   return;
  }
 if (validateRadio1() == false)
  {
   alert("Please Select a Monitor")
   return;
  }
 if (validateRadio2() == false)
  {
   alert("Please Select a Printer")
   return;
  }
 alert("Order Accepted. Thank you.");
 return;
}

function validateText()
{
 var customer = document.Form4.customer.value;
 if (customer.length == 0) return false;
 var address1 = document.Form4.address1.value;
 if (address1.length == 0) return false;
 var city = document.Form4.city.value;
 if (city.length == 0) return false;
 var phone = document.Form4.phone.value;
 if (phone.length == 0) return false;
 var email = document.Form4.email.value;
 if (email.length == 0) return false;
 return true;
}

function validateRadio()
{
 if (document.Form1.case[0].checked) return true;
 if (document.Form1.case[1].checked) return true;
 if (document.Form1.case[2].checked) return true;
 return false;
}

function validateRadio1()
{
 if (document.Form2.screen[0].checked) return true;
 if (document.Form2.screen[1].checked) return true;
 if (document.Form2.screen[2].checked) return true;
 if (document.Form2.screen[3].checked) return true;
 return false;
}

function validateRadio2()
{
 if (document.Form3.printer[0].checked) return true;
 if (document.Form3.printer[1].checked) return true;
 if (document.Form3.printer[2].checked) return true;
 return false;
}

function doClear()
{
 document.Form4.systotal.value = "0.00";
 document.Form4.customer.value = "";
 document.Form4.address1.value = "";
 document.Form4.address2.value = "";
 document.Form4.city.value = "";
 document.Form4.state.value = "";
 document.Form4.zip.value = "";
 document.Form4.phone.value = "";
 document.Form4.email.value = "";

 document.Form1.case[0].checked = false;
 document.Form1.case[1].checked = false;
 document.Form1.case[2].checked = false;

 document.Form2.screen[0].checked = false;
 document.Form2.screen[1].checked = false;
 document.Form2.screen[2].checked = false;
 document.Form2.screen[3].checked = false;

 document.Form3.printer[0].checked = false;
 document.Form3.printer[1].checked = false;
 document.Form3.printer[2].checked = false;
 document.Form3.printer[3].checked = false;

 formPics(11);

 return;
}



var computerCase = 0;
var printer = 0;
var monitor = 0;
var total = 0;

function formPics(radios)
{ 
 switch(radios)
  {
   case 1:
    document.getElementById("pics").innerHTML = "<img src='C1_Game.jpg'>"; 
    computerCase = 600.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 2:
    document.getElementById("pics").innerHTML = "<img src='C2_Home.jpg'>";
    computerCase = 500.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 3:
    document.getElementById("pics").innerHTML = "<img src='C3_Mini.jpg'>";
    computerCase = 400.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 4:
    document.getElementById("pics2").innerHTML = "<img src='S1_27.jpg'>";
    monitor = 350.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 5:
    document.getElementById("pics2").innerHTML = "<img src='S2_19.jpg'>";
    monitor = 250.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 6:
    document.getElementById("pics2").innerHTML = "<img src='S3_17.jpg'>";
    monitor = 150.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 7:
    document.getElementById("pics2").innerHTML = "<img src='S4_Proj.jpg'>";
    monitor = 650.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 8:
    document.getElementById("pics3").innerHTML = "<img src='P1_Ink.jpg'>";
    printer = 50.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 9:
    document.getElementById("pics3").innerHTML = "<img src='P2_Laser.jpg'>";
    printer = 80.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 10:
    document.getElementById("pics3").innerHTML = "<img src='P3_Color.jpg'>";
    printer = 100.00;
    total = computerCase + printer + monitor;
    document.Form4.systotal.value = total;
    break;
   case 11:
    computerCase = 0;
    printer = 0;
    monitor = 0;
    total = 0;
    break;
  }
}

function totalclear()
{
if(printer > 0)
printer = 0;
return printer;
} 


</script>

<style>
table{ width:800px}
#pics{ float: right;}
#pics2{ float: right;}
#pics3{ float: right;}
</style>

</head>

<body>

<h1 align="center">New System Order Form</h1>

<table border="1" cellpadding="5" align="center">
<tr>
<td>
<form name="Form1" align="left"> 
 <h3>Choose a Case:</h3><div id='pics'></div>
  <input name="case" type="radio"  onClick='formPics(1)'>Gaming Behemoth ($600.00)<br/> 
  <input name="case" type="radio"  onClick='formPics(2)'>Basic Home Computing ($500.00)                <br/>
  <input name="case" type="radio"  onClick='formPics(3)'>Mini Entertainment Center     ($400.00)<br/>
</form>

<br/>

<form name="Form2"> 
 <h3>Choose a Monitor:</h3><div id='pics2'></div>
  <input name="screen" type="radio"  onClick='formPics(4)'>27" UHD LED ($350.00)<br/>
  <input name="screen" type="radio"  onClick='formPics(5)'>19"HD LCD ($250.00)<br/>
  <input name="screen" type="radio"  onClick='formPics(6)'>17"HD LCD ($150.00)<br/> 
  <input name="screen" type="radio"  onClick='formPics(7)'>HD Laser Projector ($650.00)    <br/>
</form>

<br/>

<form name="Form3"> 
 <h3>Choose a Printer:</h3><div id='pics3'></div>
  <input name="printer" type="radio"  onClick='formPics(8)'>Inkjet Printer ($50.00)      <br/>
  <input name="printer" type="radio"  onClick='formPics(9)'>Laser Printer ($80.00)<br/>
  <input name="printer" type="radio"  onClick='formPics(10)'>Color Laser Printer    ($100.00)<br/> 
</form>

</td>
<form name="Form4">
<td>
<h3 align="left">System Total: $ <input type="text" name="systotal" size="10" readonly     = "readonly" value = "0.00"  /></h3>

<hr style="width:100%" />
<h3 align="left">Customer Information:</h3>

  <b>Full Name:</b><br/>
  <input name="customer" size="45" type="text"><br/>
  <b>Address:</b><br/>
  <input name="address1" size="45" type="text"><br/>
  <input name="address2" size="45" type="text"><br/>
  <b>City, State, and Zip:</b><br/>
  <input name="city" size="15 type="text">
  &nbsp;&nbsp;<input name="state" size="2" type="text">
  &nbsp;&nbsp;<input name="zip" size="5" type="text"><br/>
 <b>Phone:</b><br/>
  <input name="phone" size="40" type="text"><br/>
 <b>Email:</b><br/>
  <input name="email" size="40" type="text"><br/>
</form>
<hr style="width:100%" />
<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="Submit Order" onClick="doSubmit()">
<input type="button" Value="Reset Order" onClick="doClear()">

</td>
</tr>
</table>
</body>
</html>

您只有三台打印機,但是您嘗試清除四台。 函數doClear的代碼給出以下錯誤消息:

TypeError: document.Form3.printer[3] is undefined

由於代碼在此處崩潰,因此永遠不會執行對formPics(11)的調用,因此永遠不會清除變量。

暫無
暫無

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

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