2016-10-11 39 views
0

我想隱藏單選按鈕。我嘗試這樣的:在剃刀引擎中隱藏單選按鈕

@if (GetBoolean("bdCanOrderOnAccount")) 
              { 
               <div class="control-group"> 
                <input type="radio" value="PAY1" id="EcomCartPaymethodID_PAY1a" name="EcomCartPaymethodID" class="pull-left" @if (GetString("Ecom:Order.PaymentMethodID").Equals("PAY1")) { <text> checked="checked" </text>   }> 
                <label for="EcomCartPaymethodID_PAY1a" class="pull-left radio-label">@Translate("choosepaymentmethodebankaccount", "Betaal op rekening")</label> 
               </div> 
              } 
             <!--<div class="control-group"> 
              <input type="radio" value="PAY2" id="EcomCartPaymethodID_PAY2a" name="EcomCartPaymethodID" class="pull-left" @if (GetString("Ecom:Order.PaymentMethodID").Equals("PAY2")) { <text> checked="checked" </text>   }> 
              <label for="EcomCartPaymethodID_PAY2a" class="pull-left radio-label">@Translate("choosepaymentmethodeideal", "Betaal online via iDeal")</label> 
             </div>--> 


             <div class="control-group"> 
              <input type="radio" value="PAY3" id="EcomCartPaymethodID_PAY3a" name="EcomCartPaymethodID" class="pull-left" @if (GetString("Ecom:Order.PaymentMethodID").Equals("PAY3")) { <text> checked="checked" </text>   }> 
              <label for="EcomCartPaymethodID_PAY3a" class="pull-left radio-label">@Translate("choosepaymentmethodepickup", "Betaal bij afhalen")</label> 
             </div> 
            </div> 

           </div> 

         <script> 
              $(function() {             
               var rbtn = document.getElementById('EcomCartPaymethodID_PAY3a'); 
               document.getElementById('EcomCartPaymethodID_PAY3a').style.visibility = 'hidden'; 

               }); 
              </script> 

所以,如果我在劇本做了警報(「海」),然後我看到了海的消息。但單選按鈕不隱藏。

這怎麼可能?

謝謝

但是,如果我不喜歡這樣寫道:

<div class="hallo"> 
             <div class="control-group"> 
              <input type="radio" value="PAY3" id="EcomCartPaymethodID_PAY3a" name="EcomCartPaymethodID" class="pull-left" @if (GetString("Ecom:Order.PaymentMethodID").Equals("PAY3")) { <text> checked="hecked" </text>   }> 
              <label for="EcomCartPaymethodID_PAY3a" class="pull-left radio-label">@Translate("choosepaymentmethodepickup", "betaal bij afhalen")</label> 
             </div> 
           </div> 

這:

<script> 
              $(function() {            
               document.document.getElementsByClassName('hallo').style.visibility = 'hidden'; 

               }); 
              </script> 

它不隱藏

+0

我自己運行這個代碼,它成功地隱藏了單選按鈕。它不會隱藏它旁邊的標籤。也許你需要隱藏兩者?或者隱藏包含它們的整個div? – ADyson

+0

我更新了帖子 – SavantCode

+0

1)'document.document'是錯誤的。 2)getElementsByClassName返回一個數組,所以你必須在第一個數組索引上設置樣式(或者如果你期望得到幾個結果的話,所有這些樣式)。在說「它不工作」之前,您沒有檢查過您的瀏覽器控制檯是否有錯誤?這應該是你做的第一件事,只要你有問題的javascript :-)我保證在這種情況下會有一個控制檯錯誤,你可以用它來調試。 – ADyson

回答

1

而不是

document.document.getElementsByClassName('hallo').style.visibility = 'hidden'; 

正確的語法應爲:

document.getElementsByClassName('hallo')[0].style.visibility = 'hidden'; 

首先,document.document是沒有意義的。我會認爲這是一個錯字。

其次,getElementsByClassName返回一個匹配元素的數組,因此您必須在保存在數組索引中的單個元素上設置樣式,而不是在數組本身上。對於這個例子,我已經將它設置在第一個元素([0])上,假設您只希望得到一個結果,但是如果您可能有多個結果,則需要循環遍歷數組並在所有數組上進行賦值。

+0

謝謝。不錯 – SavantCode