2011-11-24 64 views
0

我有這樣的問題。這不起作用。但是我需要value =「」在goDo函數被調用之前爲空,並且在goDo函數被調用後被改變。JS變量的形式值

<script> 
    function goDo(num) { 
    if (num == 1) var goID = 10; 
    else if (num == 2) var goID = 20; 
    var findElement = document.getElementById('1'); 
    findElement.innerHTML.value=goID; 
    } 
</script> 

<input type="text" value="" id="1"> 

回答

1
<input type="text" value="" id="foobar"> 

<script> 
    function goDo(num) { 
    var goID, element; 
    if (num === 1 || num === 2){ 
     goID = num * 10; 
    } 
    element = document.getElementById('foobar'); 
    element.value = goID; 
    } 
</script> 
  • innerHTML返回一個字符串,不應該被用於使用
  • ===而不是HTML ==
  • ID不能以數字開頭
  • JavaScript的應該是在單獨的文件和權利之前包括</body>
+0

這是我想要的...非常感謝 – pzztzz

1

嘗試

findElement.setAttribute('value', goID); 

順便說一句,而不是使用if語句,你可以做到這一點分配GOID:

var goID = { 1: 10, 2: 20 }[num]; 

在這裏,你正在創建一個臨時散圖,那麼你使用num作爲獲得你想要的價值的關鍵。這是一種更快捷,更習慣的方式來做你正在試圖用if語句做的事情。

+0

我不明白第二個代碼...順便說一句:goID也可以是文本。 – pzztzz

+0

我試着用你的第一個代碼......它工作正常。非常感謝你 – pzztzz

1

嗯,我認爲有一些東西榮與你的代碼。你可以這樣嘗試:

function goDo(num) { 
      var goID; 
     if (num == 1) {goID = 10;} 
     else if (num == 2){ goID = 20;} 
     var findElement = document.getElementById('1'); 

     findElement.value=goID; 
    } 

goDo(1); 
+0

非常感謝...它幫助。 – pzztzz