2016-06-10 142 views
0

基本上,我試圖添加我的Radio Buttons腳本文件,當用戶單擊另一個時,將刪除所有選定的按鈕。基本上它會阻止用戶選擇超過1 Radio Button。但是,我不能。這是我的Java腳本代碼:無法訪問Java腳本文件夾

$().ready(function() { 
    var $allAccountSelectionRadios = $('.AccountSelectionRadio > input:radio'); 
    $allAccountSelectionRadios.click(function() { 
     $allAccountSelectionRadios.not(this).each(function() { 
      this.checked = false; 

     }); 
    }); 
}); 

,這裏是我的asp.net代碼:

<head runat="server"> 
<title>Lab 11 - Exception Handling and Error Logging</title> 
<script src="Scripts/jquery-3.0.0.js"></script> 
<script src="script/AccountPageScript.js" type="text/javascript"></script> 
</head> 

<body> 
    <form id="form1" runat="server"> 
     <div id="Div1" runat="server"> 
      <asp:Panel ID="AccountPanel" runat="server" GroupingText="Account Details" Visible="true"> 
       <asp:Repeater ID="AccountInfoRepeater" runat="server" Visible="true"> 
        <HeaderTemplate> 
          <table> 
          <thead> 
           <asp:TableHeaderCell ColumnSpan="2" runat="server" HorizontalAlign="Left">Account Id</asp:TableHeaderCell> 
           <asp:TableHeaderCell runat="server" HorizontalAlign="Left">Account Type</asp:TableHeaderCell> 
           <asp:TableHeaderCell runat="server" HorizontalAlign="Left">Balance</asp:TableHeaderCell> 
           <asp:TableHeaderCell runat="server" HorizontalAlign="Left">Currency</asp:TableHeaderCell> 
          </thead> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <tr> 
          <td> 
           <asp:RadioButton ID="AccountSelectionRadioButton" runat="server" /> 
          </td> 
          <td> 
           <asp:Label ID="AccountIDLabel" runat="server" Text='<%# Eval("Id") %>' /> 
          </td> 
          <td> 
           <asp:Label ID="AccountTypeLabel" runat="server" Text='<%# Eval("Type") %>' /> 
          </td> 
          <td> 
           <asp:Label ID="AmountLabel" runat="server" Text='<%# Eval("Amount") %>' /> 
          </td> 
          <td> 
           <asp:Label ID="CurrencyLabel" runat="server" Text='<%# Eval("Currency") %>' /> 
          </td> 
         </tr> 
        </ItemTemplate> 
        <FooterTemplate> 
         </table> 
        </FooterTemplate> 
       </asp:Repeater> 
       <div></div> 
       <asp:Label ID="EnterAmountLabel" runat="server" Text="Enter Amount: " /> 
       <asp:TextBox ID="WithdrawalAmountTextBox" runat="server" /> 
       <asp:Button ID="SubmitButton" runat="server" Text="Submit" /> 
       <div></div> 
       <asp:CustomValidator ID="CustomValidator" runat="server" ErrorMessage="You have to select at least one account " OnServerValidate="ValidateAccountIdSelection" Display="None" /> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" ErrorMessage="You have to enter a double value" ControlToValidate="WithdrawalAmountTextBox" Display="None" /> 
       <asp:CompareValidator ID="CompareValidator" runat="server" ErrorMessage="You have to enter a double value " ControlToValidate="WithdrawalAmountTextBox" Type="Double" Operator="DataTypeCheck" Display="None" /> 
       <div></div> 
       <asp:ValidationSummary ID="ValidationSummary" runat="server" /> 
      </asp:Panel> 
      <asp:Panel ID="ErrorPanel" runat="server" Visible="false"> 
       <asp:Label ID="SimpleBankErrorMessage" runat="server" /> 
      </asp:Panel> 
     </div> 
    </form> 
</body> 

你有什麼想法,是什麼原因導致這個問題,或者你有任何鏈接,回答了這個題。

非常感謝你們,祝你有個美好的一天!

編輯:

這裏是HTML生成的代碼:

<script type="text/javascript"> 
//<![CDATA[ 
var theForm = document.forms['form1']; 
if (!theForm) { 
    theForm = document.form1; 
} 
function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 
//]]> 
</script> 


<script src="/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZDo7pde1PlC3CEuIL05u8Q1xzcqV3PrxQf6BV-yOWDawu00wwYzaAVDc3H21VtA9QA2&amp;t=635588690558757176" type="text/javascript"> </script> 


<script src="/WebResource.axd?d=x2nkrMJGXkMELz33nwnakICvsGmK5SdM9dk67DGoGLRbDkaJ4AV4SDiDiYXmeJzOvX1FlDmSjt4uSO7vYhQSbfgakaHhNd17j5pdlKG7J5s1&amp;t=635588690558757176" type="text/javascript"></script> 
<script type="text/javascript"> 
//<![CDATA[ 
function WebForm_OnSubmit() { 
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false; 
return true; 
    } 
//]]> 
</script> 

回答

1

你爲什麼不這樣做的服務器端???與C#。 所有的單選按鈕都是runat =「server」,所以你可能會有事件監聽器通過它們並進行檢查。

$().ready(function() { 
var $allAccountSelectionRadios = $('.AccountSelectionRadio > input:radio'); 
$allAccountSelectionRadios.click(function() { 
    $allAccountSelectionRadios.not(this).each(function() { 
     this.attr('checked',false); 
    }); 
}); 

this.attr('checked',false);將是我做到這一點的方式。 但不記得它是否能與ASP.Net事件監聽器一起使用。

+0

我改變了我的與你的代碼,但它沒有幫助。我很確定代碼是正確的(它在作業中給出)。是的,也許你是對的,但這是作業,所以我們需要這樣做 –

+0

你可以分享生成的HTML :)然後我可以看看它:) – Kiksen

+0

是的當然,我會編輯我的問題: ) –

1

你需要讓你的單選按鈕做設置name屬性相同的值所有無線buttons.To實現這一目標與此更換你的腳本的相互exclusive.One方式:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $('input:radio').each(function() { 
      $(this).attr('name', 'AccountSelectionRadioButtons') 
     }); 
    }); 
</script> 
+0

感謝它的工作,但這一次,當我按下我的提交按鈕時,我的「驗證器」顯示「您必須至少選擇一個帳戶。」。我的意思是當我在另一個選擇一個「單選按鈕」時,視覺上它工作並且只顯示一個「單選按鈕」被選中。但是,這次沒有選擇它們。 –

+0

其實我的驗證器邏輯絕對是這樣的。我正在逐一檢查每一個「單選按鈕」,然後如果其中一個被選中,則爲 'isValid' = true。 –