2013-03-05 158 views
-1

我一直在這個工作了幾天,我還沒有弄明白。我有一個HTML頁面,它有兩組輸入,每一組都包含一個單選按鈕和一些文本。我需要:vbscript禁用/啓用html輸入

  • 所有的文字輸入被禁用時,頁面加載
  • 單選按鈕#1,以啓用它的文字輸入和禁用單選按鈕#文本輸入2
  • 單選按鈕#2以使它的文本輸入並禁止對單選按鈕#1

在這裏,文本輸入的一些示例代碼:

<html> 

<script type="text/vbscript"> 
<!--<![CDATA[ 
function enable() 
    if document.GetElementByID("radio1").checked then 
     document.GetElementByID("radio2").checked = false 
     document.GetElementByID("text1").disabled = false 
     document.GetElementByID("text2").disabled = true 
    elseif document.GetElementByID("radio2").checked then 
     document.GetElementByID("radio1").checked = false 
     document.GetElementByID("text1").disabled = true 
     document.GetElementByID("text2").disabled = false 
    else 
     document.GetElementByID("text1").disabled = true 
     document.GetElementByID("text2").disabled = true 
    end if 
end function 
-->]]> 
</script> 

<body onload="enable()"> 
    <table border=1> 
     <tr> 
      <td> 
       <input type="radio" id="radio1" name="radio1" value="radio1" onclick="enable()"> 
       <label for="radio1" > 
        Radio 1 
       </label> 
      </td> 
      <td> 
       <input type="text" id="text1" name="text1" value="hi"> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="radio" id="radio2" name="radio2" value="radio2" onclick="enable()"> 
       <label for="radio2" > 
        Radio 2 
       </label> 
      </td> 
      <td> 
       <input type="text" id="text2" name="text2" value="bye"> 
      </td> 
     </tr> 
    </table> 
</body> 

</html> 

看起來我可以部分工作,但不是全部。事實上,這將最終以HTA形式出現。


編輯:

由於雙方@kingdomcreation和@Teemu,我現在有單選按鈕任意數量的這種工作的解決方案:

<html> 

    <script type="text/vbscript"> 
     <!--<![CDATA[ 
     function enable(num) 
      document.getElementById("text" & num).disabled = false 

      for i = 1 to 6 
       if document.getElementById("radio" & i).checked = false Then 
        document.getElementById("text" & i).disabled = true 
       end if 
      next 
     end function 
     -->]]> 
    </script> 

    <body> 
     <table border=1> 
      <tr> 
       <td> 
        <input type="radio" id="radio1" name="radio" value="radio1" onClick="enable(1)"> 
        <label for="radio1" > 
         Radio 1 
        </label> 
       </td> 
       <td> 
        <input disabled type="text" id="text1" name="text1" value="hi"> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <input type="radio" id="radio2" name="radio" value="radio2" onClick="enable(2)"> 
        <label for="radio2" > 
         Radio 2 
        </label> 
       </td> 
       <td> 
        <input disabled type="text" id="text2" name="text2" value="there"> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <input type="radio" id="radio3" name="radio" value="radio3" onClick="enable(3)"> 
        <label for="radio3" > 
         Radio 3 
        </label> 
       </td> 
       <td> 
        <input disabled type="text" id="text3" name="text3" value="how"> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <input type="radio" id="radio4" name="radio" value="radio4" onClick="enable(4)"> 
        <label for="radio4" > 
         Radio 4 
        </label> 
       </td> 
       <td> 
        <input disabled type="text" id="text4" name="text4" value="are"> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <input type="radio" id="radio5" name="radio" value="radio5" onClick="enable(5)"> 
        <label for="radio5" > 
         Radio 5 
        </label> 
       </td> 
       <td> 
        <input disabled type="text" id="text5" name="text5" value="you"> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <input type="radio" id="radio6" name="radio" value="radio6" onClick="enable(6)"> 
        <label for="radio6" > 
         Radio 6 
        </label> 
       </td> 
       <td> 
        <input disabled type="text" id="text6" name="text6" value="bye"> 
       </td> 
      </tr> 
     </table> 
    </body> 
</html> 

回答

1

這是一個工作VBScript的例子我,看我能做些什麼,使之在VBScript中工作(客戶端)

  • 無線電臺ID可以識別一個點擊,但有行爲類似選項的選項(當單擊一個時,另一個變爲未選中狀態),name屬性必須相同。

  • VB代碼劃歸

  • 功能代碼更改爲VB語法

  • 的的document.getElementById取出

我希望這清楚了一些事情,如果你想做的客戶端VBScript ...至於只是在IE應用程序的支持者的能力,以擴展到其他瀏覽器。

<html> 


<body onLoad="enable()"> 
<table border=1> 
    <tr> 
     <td> 
      <input type="radio" id="radio1" name="radio" value="radio1" onClick="enable()"> 
      <label for="radio1" > 
       Radio 1 
      </label> 
     </td> 
     <td> 
      <input type="text" id="text1" name="text1" disabled value="hi"> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input type="radio" id="radio2" name="radio" value="radio2" onClick="enable()"> 
      <label for="radio2" > 
       Radio 2 
      </label> 
     </td> 
     <td> 
      <input type="text" id="text2" name="text2" disabled value="bye"> 
     </td> 
    </tr> 
</table> 

<script type="text/vbscript"> 
<!--<![CDATA[ 
Function enable() 
If radio1.checked = true Then 
    radio2.checked = false 
    text1.disabled = false 
    text2.disabled = true 
ElseIf radio2.checked = true Then 
    radio1.checked = false 
    text1.disabled = true 
    text2.disabled = false 
Else 
    text1.disabled = true 
    text2.disabled = true 
End If 
End Function 
-->]]> 
</script> 
</body> 

</html> 
+0

這個人很有希望。謝謝。我沒有意識到兩個按鈕的'name'屬性必須相同。 – meffordm 2013-03-06 14:09:03

1

你可以寫上disabled屬性輸入在html中,所以他們默認情況下禁用(上載)

+1

你對'disabled'屬性是正確的,但這只是問題的一部分。 – meffordm 2013-03-06 03:43:29

1

如果你真的只有兩個按鈕,這是訣竅。注意兩個單選按鈕的相同name。這樣,您可以將單選按鈕組合在一起,而無需單獨檢查/取消選中它們。 onload()也變得毫無用處。

function enable(id) 
    document.getElementById("text" & id).disabled = false 
    document.getElementById("text" & id * -1).disabled = true 
end function 

<input id="radio1" name="radio" type="radio" value="radio1" onclick="enable(1)" /> 
<input id="text1" name="text1" type="text" value="hi" disabled /> 
         : 
<input id="radio2" name="radio" type="radio" value="radio2" onclick="enable(-1)" /> 
<input id="text-1" name="text2" type="text" value="bye" disabled /> 
+0

我忘記了這個小竅門。它運作良好,但不幸的是會有兩種以上的選擇。 – meffordm 2013-03-06 14:01:05

+0

我實際上能夠使用它。謝謝。 – meffordm 2013-03-06 15:10:47

0

我可以建議類似的東西。

<html> 

<script> 
<!--<![CDATA[ 
function enable(){ 
    if(document.getElementById("radio1").checked){ 
     document.getElementById("radio2").checked = false 
     document.getElementById("text1").disabled = false 
     document.getElementById("text2").disabled = true 
    }else if(document.getElementById("radio2").checked){ 
     document.getElementById("radio1").checked = false 
     document.getElementById("text1").disabled = true 
     document.getElementById("text2").disabled = false 
    }else{ 
     document.getElementById("text1").disabled = true 
     document.getElementById("text2").disabled = true 
    } 
} 
-->]]> 
</script> 

<body onload="enable()"> 
    <table border=1> 
     <tr> 
      <td> 
       <input type="radio" id="radio1" name="radio" value="radio1" onclick="enable()"> 
       <label for="radio1" > 
        Radio 1 
       </label> 
      </td> 
      <td> 
       <input type="text" id="text1" name="text1" value="hi"> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <input type="radio" id="radio2" name="radio" value="radio2" onclick="enable()"> 
       <label for="radio2" > 
        Radio 2 
       </label> 
      </td> 
      <td> 
       <input type="text" id="text2" name="text2" value="bye"> 
      </td> 
     </tr> 
    </table> 
</body> 

</html> 
+0

這一個沒有工作,但它必須使用VBScript。 – meffordm 2013-03-06 14:03:28