2012-11-14 81 views
0

我有我的網頁(以及其他東西),其中顯示一個選擇輸入框後,檢查該單選按鈕下面的輸入單選按鈕。模擬點擊功能與JavaScript禁用

這是使用javascript實現的。現在,客戶端也希望這個選擇框在JavaScript禁用時單擊單選按鈕顯示。

這是甚至可能沒有javascript? 我看到的唯一的另一種方式是有一箇中間表單提交按鈕,處理?我不知道如何去做。 任何幫助,將不勝感激!

這裏是到目前爲止我的代碼:

<td style="visibility:<?= $Visible;?>" id="rmark1"><span>Mark question?</span></td> 
<td style="visibility:<?= $Visible;?>" id="rmark2" nowrap> 
<input type="radio" id="mail1" name="mail" value="GE" onClick="showMark();" <?= $check;?> > 
      <select id="ReturnMarkings" name="ReturnMarkings"> 
       <option value=''>Please Choose One:</option> 
       <option value='1' <?= $Array[1];?>>Mark 1</option> 
       <option value='2' <?= $Array[2];?>>Mark 2</option> 

      </select> 

function showMark() { 
    var pcRMark1=document.getElementById('rmark1'); 
    var pcRMark2=document.getElementById('rmark2'); 

    pcRMark1.style.visibility="visible"; 
    pcRMark2.style.visibility="visible"; 
} 

回答

2

@bfavaretto和@lostsource答案是great--但這並不需要PHP和工作在Chrome瀏覽器:

<style type="text/css"> 
    #ReturnMarkings { 
     display: none; 
    } 
    :target { 
     display: inline !important; 
    } 
</style> 

<input type="radio" id="mail1" name="mail" value="GE"><a style='width:12px; height:12px; display:inline-block; margin-left:-12px;' href='#ReturnMarkings'></a> 

<select id="ReturnMarkings" name="ReturnMarkings"> 
       <option value=''>Please Choose One:</option> 
       <option value='1'>Mark 1</option> 
       <option value='2'>Mark 2</option> 
      </select> 

道具@lostsource單選按鈕鏈接代碼

演示@http://jsfiddle.net/MT5db/

編輯

正如在評論中指出,這實際上並不「檢查」的單選按鈕。這裏有一個便宜的黑客修復,未經測試外的jsfiddle:

http://jsfiddle.net/MT5db/1/

+0

好東西的答案!出於好奇,是否可以通過CSS修改單選按鈕狀態? – lostsource

+0

很多很棒的答案在這裏!我選擇傑夫的答案,因爲這對我有用。我也感謝lostsource和bfavaretto! – Micheal

+0

@lostsource啊,甚至沒有注意到!不知道如何檢查使用CSS的單選按鈕,但這裏是一個便宜的黑客! http://jsfiddle.net/MT5db/1/ – Jeff

-1

不,不可能沒有JavaScript。

4

根據瀏覽器的CSS支持,這可能是工作:

#ReturnMarkings{ display: none; } 
#mail1:checked+#ReturnMarkings { display:inline; }​ 

jsfiddle demo

它依賴於CSS鄰接兄弟選擇器,IE8 +支持根據caniuse.com。根據MDN,我也依賴:checked僞類,即IE9 +。

3

要實現類似的效果,您需要使用PHP和CSS的組合。以下更改將必須應用。 (緊握,這不會是美麗的)

的單選按鈕,需要改變的鏈接,假設你的頁面被稱爲form.php的鏈接會變成這個樣子:

<a href='form.php?showmark=true'>Show Mark</a> 

只需在下面的選擇框中添加下面的邏輯,通過PHP將注入CSS這將使你的下拉可見:

<select id="ReturnMarkings" name="ReturnMarkings"> 
    <option value=''>Please Choose One:</option> 
    <option value='1' <?= $Array[1];?>>Mark 1</option> 
    <option value='2' <?= $Array[2];?>>Mark 2</option> 
</select> 

<? 
    if(isset($_GET["showmark"])) { 
?> 

     <style type='text/css'> 
     #ReturnMarkings { 
      visibility:visible!important; 
     }​ 
     </style> 
<? 
    } 
?> 

我特別不建議混合PHP /標記/ CSS,但是這可能是你唯一的解決辦法

+0

你不需要PHP來做到這一點,你可以第一個鏈接去#ReturnMarkings,並使用:目標選擇 – Jeff

+0

編輯我的評論和+1到您的答案 - 但不能在單選按鈕上使用標記。其他答案是好的,但不適用於大多數主流瀏覽器 – Jeff