2012-03-01 14 views
1

我的頁面上有4個下拉列表。我試圖輸出一條消息,然後點擊提交按鈕打開一個新頁面。這是基於每個下拉列表的單個值的條件爲真。每個檢查清單的所有選項都是正確的。例如50p = true,在下一個框中£2等於true,以此類推。點擊一個按鈕,並根據設置的值打開新的信息輸出和新頁面b

以下是其中一個框的示例。其他3盒具有完全相同的名稱,但只是有不同的真假值

<input name="button" type="submit" class="main" id="button" value="Submit" onclick="submit()" /> 

<select name="select_box" size="1" class="main" id="select_box"> 
<option value="true">50p</option> 
<option value="false">1p</option> 
<option value="false" selected="selected">20p</option> 
<option value="false">£2</option> 
</select> 

這是香港專業教育學院曾在試圖給變量賦值的嘗試。我的邏輯是,如果我可以通過獲取它們的id將變量分配給下拉列表的名稱,我可以應用一個if語句,該語句可以根據onclick函數給出我想要的結果,因爲選擇框具有真值和假值?當我運行這段代碼時,Javascript似乎只是承認並調用警告框而不管其選項如何,就好像沒有其他代碼那樣。

var a=document.getElementById("select_box"); 
var b=document.getElementById("select_box2"); 
var c=document.getElementById("select_box3"); 
var d=document.getElementById("select_box4"); 

object.onclick=submit 
if (a=true,b=true,c=true,d=true) 
{ 
alert("Correct you have won press OK for your Reward!") 
document.open("Reward.html"); 
} 
else 
{ 
alert("Not right Please try again!"); 
} 

還有如何申請上述提交按鈕的工作,這些語句

我的代碼即時通訊上半年的頂部爲窮人編輯道歉也不太清楚如何editi這麼的話,其餘顯示

回答

0

在你的代碼a持有實際的選擇元素,當你真的希望它保持選擇元素的當前。因此,改變

var a = document.getElementById("select_box"); 

這樣:

var a = document.getElementById("select_box").value; 

這將分配a是有問題的下拉列表中的。只要確保你解決你的比較:

if (a=true 

應該

if (a === 'true' 

另外請注意,設置您的下拉列表的值的價值,只是真或假

<option value="true">50p</option> 
<option value="false">1p</option> 
<option value="false" selected="selected">20p</option> 
<option value="false">£2</option> 

會使你的服務器端代碼難以處理用戶實際選擇的內容,因爲唯一的價值將會持續在表單輸入中將是真實的,或者是假的,如果是假的,你將無法知道這三個假值中的哪一個被實際選擇。

+0

我assinged .value的每個變量的結束,改變了我,如果聲明。 Javascript加密代碼,但運行時沒有任何反應 user1243542 2012-03-04 12:26:30

0

第一,得到一個選擇框的值,你需要這樣做:

var selectBox = document.getElementById("select_box"); 
var a = selectBox.options[selectBox.selectedIndex].value; 

接下來,爲您的if語句,幾件事情是錯誤的。首先,您正在使用一個等號而不是double等於比較。當您的選擇框返回的值是字符串時,您還將它們與布爾值進行比較。最後,你不能用逗號分隔條件。您必須指定AND或OR或其他。改變你的if語句,以便更多的東西是這樣的:

if (a == "true" && b == "true" && c == "true" && d == "true") 


UPDATE:這裏是什麼,我認爲你正在試圖做的一個例子:

<html> 
<head> 
    <script type="text/JavaScript"> 
     function submit() 
     { 
      // fill these in with the values for the correct answers 
      var correctAnswers = new Array("50p", "50p", "50p", "50p"); 
      for (var i = 1; i <= 4; i++) 
      { 
       // if any of the values turn up incorrect, stop right there and go back. No need to check the rest of the values. 
       if (document.getElementById("select_box"+ i).options[document.getElementById("select_box"+ i).selectedIndex].value != correctAnswers[i-1]) 
       { 
        alert("Not right, please try again!"); 
        return; 
       } 
      } 

      alert("Corect, you have won! Press OK for your reward!"); 
      document.getElementById("frmMainForm").submit(); 
     } 
    </script> 
</head> 
<body> 
    <form action="Reward.html" method="post" id="frmMainForm"> 
     <select name="select_box1" size="1" class="main" id="select_box"> 
      <option value="50p">50p</option> <!-- use the actual value, not "true" or "false" --> 
      <option value="1p">1p</option> 
      <option value="20p" selected="selected">20p</option> 
      <option value="£2">£2</option> 
     </select> 
     <select name="select_box2" size="1" class="main" id="select_box"> 
      <option value="50p">50p</option> 
      <option value="1p">1p</option> 
      <option value="20p" selected="selected">20p</option> 
      <option value="£2">£2</option> 
     </select> 
     <select name="select_box3" size="1" class="main" id="select_box"> 
      <option value="50p">50p</option> 
      <option value="1p">1p</option> 
      <option value="20p" selected="selected">20p</option> 
      <option value="£2">£2</option> 
     </select> 
     <select name="select_box4" size="1" class="main" id="select_box"> 
      <option value="50p">50p</option> 
      <option value="1p">1p</option> 
      <option value="20p" selected="selected">20p</option> 
      <option value="£2">£2</option> 
     </select> 
     <input type="button" class="main" id="btnSubmit" onclick="submit()" value="Submit" /> 
    </form> 
</body> 
</html> 

不知道有多麼重要這是,但請記住,任何從瀏覽器窗口查看源代碼的人都可以得到正確的答案。如果這是您的問題,那麼您應該將表單提交給服務器端(例如PHP,ASP,JSP等)腳本以檢查您的值。

+0

Ive treid此方法並沒有任何反應我將此方法應用於每個選擇框,就像您這樣建議var selectbox = document.getElementById(「select_box」); var a = selectbox.options [selectbox.selectedIndex] .value;var selectbox2 = document.getElementById(「select_box2」); var b = selectbox2.options [selectbox2.selectedIndex] .value;然後,我像你說的那樣應用if語句,運行代碼並且什麼也沒有發生,是否與我的腳本標記和東西的位置有關?或者也許我需要將它分配給一個按鈕,我不知道如何 – user1243542 2012-03-04 12:05:21

+0

查看更新的答案。 – Travesty3 2012-03-05 13:46:50

0

value一個可以是任何東西,正確的用法是<option value="50p">50p</option>那麼,當您使用

 
if(document.getElementById('select_box').value == '50p') { 
    alert('50p was selected'); 
} 

這將工作

相關問題