2011-06-26 28 views
2

當不同的單選按鈕聚焦時,我想更改文本框中的文本id =「1」。我認爲它會與「this.value」一起工作,但不知何故它不會。有人有任何想法如何解決這個問題?用JavaScript「this」更改文本框中的文本?

問候!

<head> 
    <title>Test</title> 
    <script type="text/javascript"> 
     var a = function(){ 

      if(this.value == "p"){ 

       document.getElementById("1").value = "Question product"; 

      } 
      else if(this.value== "v"){ 

       document.getElementById("1").value = "Question contract"; 

      } 

      else if(this.value== "t"){ 

       document.getElementById("1").value = "Question technology"; 

      } 

     } 
    </script> 

    </head> 

    <body> 
    <input type="radio" name="typ" value="p" onfocus="a()"/> product 
    <input type="radio" name="typ" value="v" onfocus="a()"/> contract 
    <input type="radio" name="typ" value="t" onfocus="a()"/> technology 
    <br /> 
    <input type="text" value="Question" size="46" id="1"/> 
    </body> 

</html> 
+2

將'this'作爲函數的參數。否則,你正在抓取全局對象。 – 2011-06-26 17:21:06

+0

嘿,我知道如何使用jquery那裏沒有問題。但我必須通過JavaScript來做到這一點:S – rafi

回答

1

不要使用焦點,但的onclick並請使用數組並給該字段一個以字母或下劃線開頭的ID

<head> 
    <title>Test</title> 
    <script type="text/javascript"> 
     var questionDescription={ 
     p:"Question product", 
     v:"Question contract", 
     t:"Question technology" 
     } 
     window.onload=function(){ 
     var typ=document.getElementsByName("typ"); 
     for (var i=0,n=typ.length;i<n;i++) { 
      typ[i].onclick=function() { 
      document.getElementById("q1").value=questionDescription[this.value] 
      } 
     } 
    } 
    </script> 

    </head> 

    <body> 
    <input type="radio" name="typ" value="p" /> product 
    <input type="radio" name="typ" value="v" /> contract 
    <input type="radio" name="typ" value="t" /> technology 
    <br /> 
    <input type="text" value="Question" size="46" id="q1"/> 
    </body> 

</html> 
+0

+1這就是要走的路...... IE瀏覽器通過'getElementsByName'發現了一些問題。 –

+0

那會是什麼?你有一個例子嗎?如果這是一個問題,只需將無線電包裹在一個表單中,然後執行'var typ = document.forms [0] .typ;' – mplungjan

+0

沒什麼不好。看來IE也在考慮** id **有這個值的元素(http://www.quirksmode.org/dom/w3c_core.html#t125)。 –

1
input type="radio" name="typ" value="p" onfocus="a(this)"/> product 

您需要在第一個通過這個作爲一個參數,然後做

var a = function(obj){ 

     if(obj.value == "p"){ 

      document.getElementById("1").value = "Question product"; 

     } 
     else if(obj.value== "v"){ 

      document.getElementById("1").value = "Question contract"; 

     } 

     else if(obj.value== "t"){ 

      document.getElementById("1").value = "Question technology"; 

     } 

代替