2015-02-09 67 views
0

我比較新的JavaScript,我似乎無法弄清楚如何在HTML中的文本字段中輸出文本。我已經看過很多解決方案,儘管我非常接近(我認爲我是),但我仍然無法正常工作。如何使文本顯示在使用javascript的文本字段中?

我試圖通過用「;」分隔一系列數字來排序,並希望按升序或降序在底部文本字段中顯示結果。該操作通過按下按鈕對其排序來完成。

當試圖調試它時,它似乎應該爲變量分配它們的值,但變量「output」不會顯示在「Sorted Numbers」文本字段中。我的代碼不完整,因爲我只是在按降序添加之前嘗試對此進行升序測試。

這裏是我的代碼...

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset = "UTF-8"> 
    <title>Sorting Numbers</title> 
</head> 
<body> 


     Enter Numbers Here: <input type = "text" id = "numInput"><br><br> 
     Select Option:  <select id = "menu"> 
           <option value = "ascending">Ascending</option> 
           <option value = "descending">Descending</option> 
          </select><br><br> 
     Sorted Numbers: <input type = "text" id = "numOut"><br><br> 
     <button onclick = "sortNums()">Sort Numbers</button> 


    <script type = "text/javascript"> 
     function sortNums() { 
      var choice = document.getElementById("menu"); 
      var numbers = document.getElementById("numInput").value; 
      var output = document.getElementById("numOut").value; 

      if(choice.value = "ascending") { 
       arr = numbers.split('; ').sort().join('; '); 
       output = arr; 
      } 

     } 
    </script> 
</body> 
</html> 
+0

腳本不會奇蹟般地知道,你想用價值做什麼,你必須告訴它... – Teemu 2015-02-09 20:03:11

+0

你的腳本工作正常,完全按照你的意思去做。它創建三個變量(選擇,數字,輸出),分配它們的值並對它們進行排序,將新的順序分配給一個變量(arr)。然後它將arr的值分配給變量輸出。如果你想讓輸出顯示出來,你必須告訴它顯示出來(參見下面的斯賓塞的答案)。 – SRing 2015-02-09 20:09:34

+0

謝謝你們!我想這只是我對這些方法如何運作的誤解而已 – Dude420 2015-02-09 21:15:21

回答

5

因爲你永遠不分配output它算賬:

if(choice.value = "ascending") { 
    arr = numbers.split('; ').sort().join('; '); 
    output = arr; 
    document.getElementById("numOut").value = output; 
} 
+0

謝謝,它工作!我只是不明白爲什麼寫行輸出= arr;與你在if塊中寫入的行不同。我只將變量輸出分配給它,以使它看起來更清潔。但是,因爲它的工作方式是爲我輸入的,所以我可能只是完全刪除「輸出」並且具有document.getElementById(「numOut」)。value = arr; – Dude420 2015-02-09 21:11:36

+0

@ Dude420由於'output'只包含元素的值,因此不直接相關。想想它已經改變了物體的性質。例如,我可以說我有'obj.x',如果說'var y = obj.x'並且改變'y'它不會改變'obj.x',唯一的方法就是直接做'obj。 x = newValue'。 – 2015-02-09 23:50:51

+0

我明白了,更有意義,現在再次感謝您的幫助! – Dude420 2015-02-10 00:27:25

相關問題