2008-12-09 57 views
1
<asp:RadioButton GroupName="EndorsementType" runat="server" ID="rdoAddProperty" Text="Add Property to TIV" /> 
<asp:RadioButton GroupName="EndorsementType" runat="server" ID="rdoRemoveProperty" Text="Remove Property from TIV" /> 
<asp:RadioButton GroupName="EndorsementType" runat="server" ID="rdoChangeProperty" Text="Change Property Values" /> 

我在想實現自定義validator,並使用客戶端JavaScript函數引用單選按鈕ID,(我使用的web表單,不MVC),驗證的RadioButtonGroup客戶端

something like.. 
if(document.getElementById(<%= rdoAddProperty.ClientId %>).checked == true) && ... 

任何人都知道如何在不知道clientId的情況下做到這一點?

回答

3

如果你的收音機都包含像一個DIV中,因爲你的asp:單選按鈕將呈現爲HTML的輸入,你可以這樣做:

<script type="text/javascript" language="javascript"> 
    function Validate() 
    { 
     var l_elemsRadios = document.getElementById("MyRadios").getElementsByTagName("input"); 

     if (l_elemsRadios == null) 
      return; 

     for (var i = 0; i < l_elemsRadios; i++) 
     { 
      // validate l_elemsRadios[i] through l_elemsRadios[n] 
     } 
    } 
</script> 


<div id="MyRadios"> 
    <input type="radio" name="EndorsementType" value="Remove Property from TIV" >Remove Property from TIV 
    . 
    . 
    . 
</div> 
+0

應該是.getElementsByTagName()< - * Tag * .getElementsByName()將用於所有元素的名稱屬性爲「EndorsementType」 – scunliffe 2008-12-09 21:29:57

0

您必須將您的客戶端ID輸出到表單中,與INamingContainer一樣,您的ID可以根據存儲在服務器上的其他信息進行更改。

+0

我忘了提及的單選按鈕還嵌套一個嚮導的模板步驟,所以你認爲我應該公開它的客戶端ID作爲屬性在代碼背後/服務器端代碼? – 2008-12-09 19:29:38